urllib2を使用してURLリクエストを実行するPythonスクリプトがあります。非同期に実行され、機能を実行する5つのプロセスのプールがあります。この関数は、URLを呼び出し、データを取得し、必要な形式に解析し、計算を実行し、データを挿入する関数です。データ量は、各URL要求ごとに異なります。スタックされたpythonプロセスを監視する
このスクリプトは、cronジョブを使用して5分ごとに実行します。ときどき私がps -ef | grep python
をしたとき、私はつぶれたプロセスを見る。プロセスを追跡できるマルチプロセッシングクラス内でプロセスの意味を把握する方法はありますか?その状態の意味は完了していますか?ここでは、コードスニペットです:
これは私が非同期で
pool = Pool(processes=5)
pool.apply_async(getData,)
そして、次のurllib2の要求を実行したgetDataの一部であるプロセスを呼び出す方法です:
try:
Url = "http://gotodatasite.com"
data = urllib2.urlopen(Url).read().split('\n')
except URLError, e:
print "Error:",e.code
print e.reason
sys.exit(0)
追跡する方法はありますがスタックされたプロセスを再実行しますか?
"stuck?"これが何を意味するのか説明できますか? –
なぜ 'multiproccesing'でそれらを実行する必要がありますか?複数のcronジョブを使用すると何が問題になりますか? –
@Andrew:つまらないことは、プロセスをハングアップさせることです。 – ash