我正在使用Celery的定期功能对我的数据库进行批量更新。要插入的数据由同一脚本的某些其他功能存储在全局列表中。问题是,每当执行Periodic函数时,它都会将列表视为空列表。
以下是相同的代码段:
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
有人可以帮我这个吗?
答案 0 :(得分:0)
使用你的后端。我可以看到它的mongo。当您执行writeLog
时,将数据存储到mongodb并在batchUpdate
中阅读。
请注意您要存储的数据的性质。它可能应该可序列化为pickle或json。