Как запустить задачу Celery с отсрочкой по времени?
Есть Django модель, которая имеет поле is_activated. При создании нового объекта модели is_activated автоматически принимает значение False. Чтобы данное поле стало True пользователь должен в течении 20 минут выполнить определенное условие. Если в течении 20 минут пользователь не выполнил данное условию - удалять аккаунт.
Можно ли задать для задачи таймер отсрочку исполнения задачи. Т.е. поставить задачу в очередь только через 20 минут после сохранения объекта модели для проверки is_activated.
Или лучше выполнять задачу каждые n-секунд и проверять время создания обьекта модели?
Или есть более лучшие решения данной задачи?
Periodic Tasks, отлично подойдут для такого. expired_at тоже решение, но опять же нужно будет раз в N времени запускать задачу на удаление подобных записей, если конечно нет задачи их хранить.
Хранить эти данные есть смысл всегда. Хотяб для маркетинговых нужд. Еxpired_at Это самое простое и праведное решение. Удалять такие записи при наличии expired_at можно и раз в неделю в определение время ....