我有一个情况定期每月big_task
在这个文件中,其中链接的任务是small_task_1
和small_task_2
读取每行一个链接任务文件和排队:如何监控芹菜中的一组任务?
class BigTask(PeriodicTask):
run_every = crontab(hour=00, minute=00, day_of_month=1)
def run(self):
task_list = []
with open("the_file.csv" as f:
for row in f:
t = chain(
small_task_1.s(row),
small_task_2.s(),
)
task_list.append(t)
gr = group(*task_list)
r = gr.apply_async()
我想获得有关统计每个small_task
每当完成所有这些任务时(无论状态如何),都将向队列项目管理员发送汇总电子邮件,并且已排队,失败的任务(以及有关例外的详细信息)的数量。
我首先想到使用chord
,但callback
不会执行,如果任何headers
任务失败,这肯定会发生在我的情况。
我也可以在BigTask
中使用r.get()
,非常方便,但不推荐将任务结果等待到另一个任务中(即使这里,我猜工人死锁的风险很差,因为任务只会执行一次月)。
重要提示:输入文件包含〜700k行。
您会如何推荐继续?
芹菜版? – ItayB
我目前使用的是3.1.25 – stellasia