我在许多机器上使用芹菜处理许多任务,但我的内存有问题。 我有一个6 GB文本ID的文件,我读取文件并获取id以将其发送到其他机器上的任务。
with open(source_file) as file:
for row in file:
row = json.loads(row)
if row['oid']:
app.send_task(name='test',
queue='test',
routing_key='test',
args=(row['oid'],))
但问题是记忆公羊长大了。当我评论send_task代码时,内存ram是正常的。我想当我发送任务快,内存不释放内存。我的英语不太好
答案 0 :(得分:0)
1)你可以购买更多的内存
2)你是如此迅速地将任务写入RAM并且另一方的工作人员无法处理它们,那么你可以通过简单的睡眠方法减慢芹菜任务发送者的速度
if row['oid']:
app.send_task(name='test',
queue='test',
routing_key='test',
args=(row['oid'],))
import time
time.sleep(1) # sleep one second
3)例如,您可以使用Redis仅将row[oid']
保存到RAM,而不使用芹菜。远程工作人员将监听该数据(Pub/sub)