在我的项目中,我使用django celery beat包来执行计划任务。它工作得很好,但我有一个案例,我不能处理。
所有任务都有一个PeriodicTack
来调度它们。
接下来的任务是:
from celery import shared_task
@shared_task
def foo(**kwargs):
# Here I can to things like this :
whatever_method(kwargs["bar"])
不知道这是不是运气,但事实证明kwargs
"指向" PeriodicTask
模型的kwargs属性。
- 我的问题是**
1.如何访问运行任务的PeriodicTask
示例?
1.如果我有2个PeriodicTask
使用相同的shared_task,但使用不同的调度/参数,它会找出哪个是该特定运行的源吗?
先谢谢你的帮助。
1条答案
按热度按时间xqkwcwgp1#
好吧,我找到了一个办法.
正如我在评论中所说,利用
@app.task
解决了我的需求。我最终得到了这样一个任务:
其中
app
是文档中描述的Celery应用程序。据我所知,
bind=True
是使任务具有自己的请求并因此能够访问self
的信息所必需的。