Django q 更新一个已经安排好的任务

Posted

技术标签:

【中文标题】Django q 更新一个已经安排好的任务【英文标题】:Django q update an already scheduled task 【发布时间】:2021-02-25 22:31:02 【问题描述】:

我正在使用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 是否有一个待定的计划,然后访问它来修改它?

【问题讨论】:

【参考方案1】:

因为我在文档中找不到它,所以将其留在这里,但您可以像任何其他 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()

【讨论】:

以上是关于Django q 更新一个已经安排好的任务的主要内容,如果未能解决你的问题,请参考以下文章

如何从 django 前端安排任务?

从 django 中的视图更新模板标签的值

每小时安排后台任务swift 4

Django celery 定期任务间隔更改未在数据库中更新

Django Celery Beat 管理员更新 Cron Schedule 定期任务未生效

BZOJ 1572 [Usaco2009 Open]工作安排Job:贪心 + 优先队列先放再更新