1
Celeryの周期関数を使用してデータベースのバッチ更新を行っています。挿入されるデータは、同じスクリプトの他の関数によってグローバルリストに格納されます。問題は、Periodic関数が実行されるたびに、リストが空のものとして表示されることです。続きCeleryのPeriodic関数とPythonの関数の間でグローバル変数を共有する方法
は同じのためのコードスニペットです:
client = MongoClient('localhost:27017')
db = client.module_data
batchData = []
@periodic_task(run_every=(crontab(minute='*/1')), name='Batch_Update')
def batchUpdate():
global batchData
print batchData
if len(batchData)>0:
db.logs.insert_many([_data for _data in batchData])
def writeLog(event='', method='', execution_time=0.0):
global batchData
if event=='' or method=='' or execution_time==0.0:
return
_date = datetime.now()
_data = {'event':event, 'method':method, 'execution_time':execution_time, 'date':_date}
#db.logs.insert(_data)
batchData.append(_data)
print batchData
誰かがこれで私を助けることができますか?