【发布时间】:2017-12-18 10:18:59
【问题描述】:
我查看了 celery 文档并从中尝试了一些东西,但它不像示例那样工作。也许我在某些时候错了,如果我对以下代码有误,请给我一些指导
在views.py中我有这样的东西:
class Something(CreateView):
model = something
def form_valid(self, form):
obj = form.save(commit=False)
number = 5
test_limit = datetime.now() + timedelta(minutes=5)
testing_something.apply_async((obj, number), eta=test_limit)
obj.save()
在芹菜任务中我写了这样的东西:
@shared_task()
def add_number(obj, number):
base = Base.objects.get(id=1)
base.add = base.number + number
base.save()
return obj
我使用此代码的条件是 celery 在 CreateView 运行后立即运行,我的目标是在运行 Something CreateView 后 5 分钟内运行一次任务 add_number。非常感谢
编辑:
- 我已尝试将
eta更改为countdown=180,但它仍会立即运行add_number功能。我也尝试过更长的倒计时,但仍会立即运行 - 我试过@johnmoustafis 的回答,但还是一样,任务立即运行
- 我也试过@dana 的回答,但还是一样,任务立即运行
【问题讨论】:
标签: python django celery django-celery celery-task