Django& Celery:如何使用Celery安排作业只运行一次(类似于linux中的“at”命令)?

时间:2012-03-30 18:00:04

标签: django celery schedule

我查看了django-celery教程,我认为它可以帮助我在不让用户等待的情况下运行后台任务。但是,我在程序中有一个特定的要求,当用户输入日期时,django应该能够进行调度并将执行推迟到以后的时间。我之前使用过at程序,但它提供了很多权限问题。但是当我阅读Celery的文档时,我只能看到Celery支持cron类似@periodic_task的任务。我确信它也提供at类似的机制,但我找不到任何文档。任何人都可以向我指出一些资源,或者只是告诉我如何实现这一目标?感谢。

2 个答案:

答案 0 :(得分:11)

答案 1 :(得分:3)

您可以向apply_async()函数提供倒计时或ETA参数。通过这样做,您可以定义将要执行任务的最早时间,但不能确定完成的任务(它取决于您的队列)。有关详细信息,请参阅here