【发布时间】:2018-09-10 05:39:00
【问题描述】:
我有一个简单的周期性任务:
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 的示例
【问题讨论】:
-
您可以像在单元测试框架中调用任何其他方法一样调用此方法...您究竟想在这里测试什么?这个任务会在每天午夜触发吗?还是方法中的路径?
-
是的,我想检查一下 crontab 是否可以工作。
-
这应该包含在
celery自己的单元测试中......我不确定你是否能够对这个机制进行单元测试。 -
@NarnikGamarnik 你能做到吗?
标签: python django cron celery periodic-task