как избежать регистрации несколько раз при использовании потоков Python - PullRequest
0 голосов
/ 02 января 2012

В одной теме. Run () я нахожу пару строк на соответствующих веб-страницах. если найден, я записываю текст в файл журнала.

скажем, 4 строки на соответствующих 4 веб-страницах.

когда я запускаю один поток, файл журнала показывает 4 журнала для каждой строки на соответствующей веб-странице

Всего я получаю 16 журналов в одном потоке, в то время как я ожидаю только 4 журнала для 4-х строк поиска. я не уверен, где все идет не так ..

https://github.com/sumankumar/websitemonitor

Любые указатели на этот дизайн, или где я делаю ошибку (Я использую глобальный регистратор для всех своих файлов и просто импортирую регистратор, когда это необходимо)

myLogFile = logging.FileHandler("./example.log")

Полагаю, ошибка в объекте логгера, который я создал с

myLogFile = logging.FileHandler("./example.log",'w')

ведет себя немного по-другому

(наконец ... пожалуйста, укажите любые другие предложения в моем коде :-))

1 Ответ

0 голосов
/ 03 января 2012

вы можете использовать Queue , и все потоки будут записывать данные в экземпляр очереди.Затем прочитайте из этой очереди из другого потока и войдите туда.Очередь заботится о блокировке / синхронизации.(модель с несколькими производителями / для одного потребителя)

...