你能强迫一个芹菜计划任务立即在apple_sync上运行吗



我在Celery上有一个计划任务,每三分钟运行一次。然而,在某些情况下,当高优先级任务出现时,我想立即运行该任务

例如,您有一个每3分钟发送一次批量电子邮件的时间表。然而,当收到高优先级电子邮件时,我想调用send_email.apply_async()并立即运行它,只发送特定的高优先级电子邮件并退出。

我注意到的是,当我调用send_email.apply_async(kwargs=hig_priority_email_details)时,我注意到它没有立即执行,就像它在3分钟后被发送运行一样。我会错过什么?

预定任务:

'engine.app_engine_v1_0.send_email.run-every-180-seconds': 
    {'task': 'engine.app_engine_v1_0.send_email',
     'schedule': timedelta(seconds=180),
     'kwargs': {'no_of_emails':60000, 'lock_expire':5, 'skip_lock':False}
     },

我已经有一段时间没有运行Celery提供的.delay()方法了,所以我忘记了它。它在Celery Basics指南中解释过。它是发送任务消息的快捷方式,但不支持执行选项。

所以在这种情况下,我只需要调用send_email.delay(**high_priority_email_details),它就会立即运行。

最新更新