我有一个将任务排入队列以进行处理的小脚本。此脚本进行大量数据库查询以获取应排队的项目。我面临的问题是芹菜工人一旦被脚本排队就开始接受任务。这是正确的,这是芹菜应该工作的方式,但这经常导致我的脚本和芹菜工人之间的僵局。
有没有一种方法可以将我的所有任务从脚本中排入队列但延迟执行直到脚本完成或直到一个固定的时间延迟?
我在 celery 或 django-celery 的文档中找不到这个。这可能吗?
目前,作为一种快速修复,我考虑将所有要处理的项目添加到一个列表中,当我的脚本执行完所有查询后,我可以简单地遍历列表并将任务排入队列。也许这可以解决问题,但是当您有数千个项目要排队时,这可能是个坏主意。