我需要执行一次芹菜任务,每次我更改模型上的字段时都会调用该任务。想象一下,在name
模型上有一个Book
字段,并且每次更改时,我都需要启动一个复杂的celery任务,该任务会为这本书做一些长期运行的工作,例如在图书馆。
事实是,名称是一个输入字段,因此用户可以在name
字段中缓慢键入,并且每一个字母都会调用一次芹菜任务。
重要的是,我不在乎以前的调用,我只想在相关的任务(即最后一次调用)时才执行任务 。我考虑过节流,或者也许以某种方式撤销了所有与本书相同的名称的以前的任务调用,但是从我在这里看到的来看,在完全正常的情况下终止任务不是我应该做的。节流也可能是一种选择。
该解决方案还必须同时支持本地和生产环境的SQS和Redis。
任何帮助将不胜感激,非常感谢!