:piton çoklu işlem havuzu, süreçler bekleyin ve özel yeniden işler
Traceback (most recent call last):
File "C:\workspace\sdl\lxchg\walker4.py", line 163, in <module>
pool.join()
File "C:\Python25\Lib\site-packages\multiprocessing\pool.py", line 338, in joi
n
assert self._state in (CLOSE, TERMINATE)
AssertionError
:
...
results = []
for i in range(num_extract):
url = queue.get(timeout=5)
try:
print "START PROCESS!"
result = pool.apply_async(process, [host,url],callback=callback)
results.append(result)
except Exception,e:
continue
for r in results:
r.get(timeout=7)
...
i pool.join kullanmak ancak hatayı elde etmeye çalışmak
işe Neden yok katılmak? Ve tüm süreçleri beklemenin iyi yolu nedir?
İkinci sorum ben havuzda belirli işlemini yeniden başlatabilirsiniz nasıl? Bellek sızıntısı nedeniyle buna ihtiyacım var. Şimdi tüm süreçleri tamamladıktan sonra tüm havuzu yeniden yapıyorum (yeni nesneyi yeniden oluşturmak için nesne havuzu oluştur).
i gerekenler: örneğin i havuzda 4 süreç var. Sonra görevini yap, görev tamamlandıktan sonra süreci öldürmem ve yeni başla (bellek sızıntısını yenilemek için).
neden 'çoklu işlem/pool.py'' site packages' yaşam olup Lib' 'doğrudan mı? Eğer onu hacklediysen, bilmemiz gerekiyor. – aaronasterling
hmm .. ben çalıştığını yakın olan python2.5 – Evg
bilmiyorum. – Evg