【问题标题】:How can I automatically modify a database record after a certain amount of time? [closed]如何在一定时间后自动修改数据库记录? [关闭]
【发布时间】:2013-09-06 10:39:03
【问题描述】:

我正在使用 Django 框架编写一个 Web 应用程序,我对如何在特定时间段后自动修改我的数据有一些更高层次的问题。

我有两个不同的更新要做:

  1. 我想在每周一上午 12:01 对我的数据库执行一些操作。我一直在想我会运行一个 cron 作业来执行此操作。

  2. 我有一个模型“事务”,它有一个时间创建字段。事务创建48小时后,我想切换事务中的一些布尔字段,并对其他相关对象进行一些更改。

对于#2,我最好的选择是每分钟运行一个 cron 作业,检查是否有任何事务超过 48 小时?有没有更简单的方法可以做到这两点?

【问题讨论】:

    标签: python django cron


    【解决方案1】:

    您可以使用名为 Celery 的包来完成这两件事。

    Celery 是一个基于分布式消息传递的异步任务队列/作业队列。

    以下是给 Django 用户的介绍: http://docs.celeryproject.org/en/latest/django/first-steps-with-django.html

    对于问题 1 - 您可以使用 crontab 调度程序类型在 Celery 中执行定期任务: http://docs.celeryproject.org/en/latest/userguide/periodic-tasks.html#crontab-schedules

    对于问题 2 - 我将参考以下 Stack Overflow 问题以在模型中执行延迟任务: Django - Executing a task through celery from a model

    【讨论】:

    • 这看起来很棒,我真的希望能找到这样的东西。感谢您的精彩回答。
    猜你喜欢
    • 2013-12-17
    • 2020-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-16
    • 2023-03-13
    • 1970-01-01
    相关资源
    最近更新 更多