我想从同一个函数创建多个芹菜任务,它们传递给任务装饰器的参数将有所不同。假设我想在我的系统中为付费帐户和免费帐户设置不同的超时时间。
我希望以以下方式应用任务装饰符可以达到目的:
def _update(x, y):
...
update_free = task(soft_time_limit=300, time_limit=305)(_update)
update_paid = task(time_limit=1800)(_update)
但是我在日志中看到update_paid
和update_free
都没有注册为任务。由于某些原因,_update
被注册为一个任务。
我不知道为什么芹菜/django-芹菜这样做,对我来说似乎很晦涩。有人知道怎么解决这个问题吗?谢谢。
芹菜的task
装饰器在注册任务时使用被装饰函数的名称,并且在定义函数时将该名称设置为"_update":
>>> def _update(x, y):
... pass
...
>>> _update.__name__
> '_update'
>>> update2 = _update
>>> update2.__name__
> '_update'
你可以在装饰器中指定任务的名称:
update_free = task(name='update_free', soft_time_limit=300, time_limit=305)(_update)
update_paid = task(name='update_paid', time_limit=1800)(_update)