首页 > 解决方案 > Django q 更新一个已经安排好的任务

问题描述

我正在使用Django-q在对象中的指定日期安排任务(让我们称之为铃)。我可以成功地使用

schedule_obj = schedule(func_name, arg1, arg2, arg3,
                        schedule_type=Schedule.ONCE,
                        next_run=bell.date)

当保存日期的 obj bell 有更新时,我想用更新的日期(bell.date)修改这个时间表 obj。有没有办法用 args 来检查这个特定的 func_name 是否有一个待定的计划,然后访问它来修改它?

标签: pythondjangoscheduledjango-q

解决方案


将其留在这里,因为我在文档中找不到它,但是您可以像任何其他 Django 模型一样访问和修改创建的 django-q 计划。

只要您更新next_run您正在使用的计划类型的计划参数和计划参数,集群工作人员将使用更新的信息来运行:

from django_q.models import Schedule

existing_schedules = Schedule.objects.filter(func=func_name, args=args)

for schedule in existing_schedules:
    schedule.next_run = bell.date
    schedule.save()

推荐阅读