折腾:
期间,在:
基于 Celery 的后台任务 — Flask 0.10.1 文档
中看到:
result.wait()
不知道如何指定延期时间
celery wait time
celery.result — Celery 4.1.0 documentation
Calling Tasks — Celery 4.1.0 documentation
python – Celery workers wait – Stack Overflow
celery 指定 延期时间
celery 4.1.0 版本定时任务执行时间 bug | 阿小信的博客
Django Celery定时任务和时间设置 – 杨仕航的博客
使用 Celery 和 redis 完成任务队列 | Simple and Interesting
celery 指定 delay时间 执行
celery 延期 特定时间 执行
“apply_async 常用的参数如下:
* countdown:指定多少秒后执行任务
task1.apply_async(args=(2, 3), countdown=5) # 5 秒后执行任务
* eta (estimated time of arrival):指定任务被调度的具体时间,参数类型是 datetime
from datetime import datetime, timedelta
# 当前 UTC 时间再加 10 秒后执行任务
task1.multiply.apply_async(args=[3, 7], eta=datetime.utcnow() + timedelta(seconds=10))”
终于找到了:
要么用:countdown,要么用eta
celery.app.task — Celery 4.1.0 documentation
“* countdown (float) – Number of seconds into the future that the task should execute. Defaults to immediate execution.
* eta (datetime) – Absolute time and date of when the task should be executed. May not be specified if countdown is also supplied.”
注意此处不是去用:
“* expires (float, datetime) – Datetime or seconds in the future for the task should expire. The task won’t be executed after the expiration time.”
【总结】
可以参考Celery官网文档中去:
要么用countdown指定多少秒之后任务再执行
要么用eta指定精确的时间datetime后任务再运行
如果设置了countdown,则明显没必要再设置eta参数了
注意:此处不是用expires
因为expires指的是:过了多长时间之后,你要运行的任务就过期了
而过期了的任务,Celery就不会去运行了。
转载请注明:在路上 » 【已解决】Celery中如何指定延期多长时间后再运行任务