Django с Huey - задержка выполнения задачи
Для сценария с заказами на продажу мне нужно выполнить задание с заданной задержкой.
Для этого я добавил задачу в файл tasks.py следующим образом:
from huey import crontab
from huey.contrib.djhuey import db_task
@db_task(delay=3600)
def do_something_delayed(instance):
print("Do something delayed...by 3600 seconds")
Однако эта настройка задержки, похоже, ничего не задерживает. Задача просто запланирована и выполняется немедленно.
Что я делаю не так?
Спасибо coleifer за репо на GitHub: https://github.com/coleifer/huey/issues/678#issuecomment-1184540964
Декораторы task() не принимают параметр задержки, см. https://huey.readthedocs.io/en/latest/api.html#Huey.task
Я предполагаю, что вы уже читали документацию по планированию/отсрочке вызовов задач: https://huey.readthedocs.io/en/latest/guide.html#scheduling-tasks - но это относится к отдельным вызовам.
Если вы хотите, чтобы ваша задача всегда откладывалась на 1 час, то лучшим способом будет:
@db_task()
def do_something(instance):
print("Do something")
def do_something_delayed(instance):
return do_something.schedule((instance,), delay=3600)