芹菜倒计时错误

时间:2013-03-14 13:12:57

标签: python celery

我正在尝试为任务添加倒计时,但没有运气。

以下是我正在使用的代码

@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)

取自完整celery log

有什么想法吗?

修改

使用倒计时测试一个简单的例子似乎工作正常。我想这是我的项目布局导致问题与我运行芹菜的方式相结合。

所以我的布局就像这样

项目(app {__init__.pyviews.pymodels.pytasks.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'",)

1 个答案:

答案 0 :(得分:1)

问题终于解决了。解决方案来自改变

celery -A app.tasks worker -l info

celery --workdir=proj/ -A app.tasks worker -l info