У меня часто есть модели, которые являются локальной копией некоторого удаленного ресурса, который необходимо периодически синхронизировать.
Task(
url="/keep_in_sync",
params={'entity_id':entity_id},
name="sync-%s" % entity_id,
countdown=3600
).add()
Внутри keep_in_sync все изменения сохраняются в модели, и новое задание планируется повторить позже.
Теперь, хотя на первый взгляд это кажется хорошим решением, на практике вы можете беспокоиться, действительно ли все необходимые задачи были добавлены или нет. Возможно, у вас есть объекты, представляющие уровень пищевых гранул в клетках ваших хомяков, так что автоматизированная электронная почта может быть отправлена вашей домработнице, чтобы кормить их. Но через несколько недель, когда вы возвращаетесь из отпуска, вы обнаруживаете, что несколько ваших хомяков голодали.
Затем начинает казаться хорошей идеей создать скрипт, который проходит через каждую сущность и проверяет, что соответствующая задача действительно находится в очереди для нее. Но ни классы Task, ни Queue не имеют никакого метода для проверки, существует задача или нет.
Можете ли вы спасти хомяков и придумать лучший способ убедиться, что метод действительно наверняка периодически вызывается для каждой сущности?
Обновление
Похоже, что если вы хотите быть действительно уверенным в том, что задачи запланированы, вам нужно отслеживать свои собственные задачи, как предлагает Ник Джонсон. Не готов расстаться с удобной очередью задач, поэтому на данный момент просто допустим неопределенность невозможности проверить, действительно ли задачи запланированы или нет.