如何在姜戈测试芹菜周期任务?

2022-02-27 00:00:00 python django cron celery periodic-task

问题描述

我有一个简单的定期任务:

from celery.decorators import periodic_task
from celery.task.schedules import crontab
from .models import Subscription

@periodic_task(run_every=crontab(minute=0, hour=0))
def deactivate_subscriptions():
    for subscription in Subscription.objects.filter(is_expired=True):
        print(subscription)
        subscription.is_active = False
        subscription.can_activate = False
        subscription.save()

并且我想用测试来覆盖它。

我找到有关如何测试简单任务的信息,如@SHARED_TASK,但我在任何地方都找不到测试示例@periodic_task


解决方案

使用函数apply()。Documentation for apply().

相关文章