Уведомления

Группа в Telegram: @pythonsu

#1 Май 26, 2014 18:05:26

kotey
Зарегистрирован: 2014-05-20
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа с multiprocessing,Queue(),Manager()

Подскажите, можно ли ограничиться только очередями для сохранения данных в один файл разными процессами? Либо нужно использовать менеджер процессов? Вроде как обмен данными не требуется, но файл для сохранения результата один.
Если можно пример. Спасибо.

Отредактировано kotey (Май 26, 2014 18:06:33)

Офлайн

#2 Май 26, 2014 20:31:59

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Работа с multiprocessing,Queue(),Manager()

Можно ограничиться файлом без всяких менеджеров и очередей (вы не наложили никаких требований на то как оно пишется).



Отредактировано doza_and (Май 26, 2014 20:33:36)

Офлайн

#3 Май 27, 2014 00:56:00

kotey
Зарегистрирован: 2014-05-20
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа с multiprocessing,Queue(),Manager()

doza_and
Можно ограничиться файлом без всяких менеджеров и очередей (вы не наложили никаких требований на то как оно пишется).
а что насчет коллизий? когда один процесс попытается сохранить файл открытый другим процессом?

Офлайн

#4 Май 27, 2014 01:27:52

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

Работа с multiprocessing,Queue(),Manager()

kotey
он может открыть его? О_о

Напиши код для теста ибо мне тоже интересно.

Офлайн

#5 Май 27, 2014 08:00:07

ziro
От:
Зарегистрирован: 2009-08-13
Сообщения: 225
Репутация: +  8  -
Профиль   Отправить e-mail  

Работа с multiprocessing,Queue(),Manager()

kotey

Держите пример Python: write to single file from multiple processes (ZMQ). Правда, как следует из названия, это не совсем то, что Вам нужно, поскольку там zmq используется. Но ПМСМ в данном случае это наиболее простой и идеальный по быстродействию вариант.



Офлайн

#6 Май 27, 2014 17:13:42

kotey
Зарегистрирован: 2014-05-20
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа с multiprocessing,Queue(),Manager()

Singularity
koteyон может открыть его? О_о Напиши код для теста ибо мне тоже интересно.

def pars(arg):
    try:
        res = parse(arg)
    except:
         sys.exit()
    with open('res.txt','a') as s:   
         s.write(res.encode('utf-8') + '\n')   
         
pool = Pool(processes=4) 
try:
    result = pool.map_async(pars, lines)
    result.get(timeout=20)
except:
    sys.exit()

Отредактировано kotey (Май 27, 2014 17:19:39)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version