我正在尝试为任务添加倒计时,但没有运气。
这是我正在使用的代码
@celery.task
def check_st(key, t):
device = Device.query.filter(Device.key == key).first()
data = Data.query.filter(Data.dev_id == device.id).order_by(Data.timestamp.desc()).first()
if(data.timestamp == t):
return True
我这样称呼它
check_st.apply_async([key, data.timestamp], countdown=300)
取自完整的芹菜原木。
有任何想法吗?
编辑
用倒计时测试一个简单的例子似乎工作正常。我想这是我的项目布局导致问题与我运行芹菜的方式相结合。
所以我的布局是这样的
项目(应用程序(__init__.py
,,,,views.py
)models.py
)tasks.py
在我的tasks.py中,我导入这样的模块
from app.models import Device, Data
然后在我的views.py中我使用导入任务
from app.tasks import check_st
proj/
我在这样的目录中运行芹菜
celery -A app.tasks worker -l info
使用此设置,所有其他任务都按预期工作,但是当我添加倒计时关键字时,我得到以下信息
Task app.tasks.check_st[deffd607-c6d4-41af-882c-e111736888ba] raised exception: TypeError("check_st() got an unexpected keyword argument 'countdown'",)