如何在 Django 中每天精确执行一次命令?

2024-06-26

我正在开发一个基于 Django Web 的项目,在该项目中我需要构建一个按以下顺序工作的应用程序:

1)用户打开一个页面,需要在其中输入command and a time

2)Django应用程序将在每天的给定时间执行该命令,直到用户关闭调度程序(默认情况下为True)

我面临的问题是:

1)我应该如何在每天的某个时间执行命令。为了节省命令和时间,我在我的模型中创建了以下模型models.py

class commands(models.Model):
    username = models.ForeignKey(User)
    command = models.CharField(max_length=30)
    execution_time = models.DateField()

我有相同的时间,但我没有找到每天在给定时间执行它的正确方法

是否可以做pytz图书馆?

为了执行我正在使用的命令paramiko library

PS:我不想使用任何外部库


虽然您可以让 django 应用程序在系统上添加和删除 cron 作业,但另一种更 django 风格的方法是使用Celery http://pypi.python.org/pypi/django-celery/。它是一个任务队列系统,可以运行同步和异步任务。

Celery 的一项具体功能是计划任务:http://packages.python.org/celery/userguide/periodic-tasks.html http://packages.python.org/celery/userguide/periodic-tasks.html

from datetime import timedelta

CELERYBEAT_SCHEDULE = {
    "runs-every-30-seconds": {
        "task": "tasks.add",
        "schedule": timedelta(seconds=30),
        "args": (16, 16)
    },
}

他们还有一个更细粒度的周期任务版本,可以复制 crontab 的调度:

from celery.schedules import crontab

CELERYBEAT_SCHEDULE = {
    # Executes every Monday morning at 7:30 A.M
    'every-monday-morning': {
        'task': 'tasks.add',
        'schedule': crontab(hour=7, minute=30, day_of_week=1),
        'args': (16, 16),
    },
}

芹菜本身是独立的,但有Django 芹菜 http://pypi.python.org/pypi/django-celery/具体版本

该解决方案的好处是您不需要编辑和维护系统级 cron 选项卡。这是一个高度集成到 django 中的解决方案,用于此用途。

Also a huge使用 cron 的优势在于 Celery 可以随您的系统进行扩展。如果您使用的是基本系统 crontab,那么任务将位于托管应用程序的服务器上。但是,如果您需要提升站点并在 5 个 Web 应用程序节点上运行它该怎么办?您需要集中该 crontab。如果你使用 Celery,你有一个大量的选择 http://docs.celeryproject.org/en/latest/getting-started/brokers/index.html了解如何运输和存储任务。它本质上是分布式的,并且可以与所有应用程序服务器同步。它是便携式的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Django 中每天精确执行一次命令? 的相关文章

随机推荐

  • 如何在连续循环中使用python多处理池

    我正在使用 python 多处理库来执行 selenium 脚本 我的代码如下 start and join multiple threads thread list total threads 10 no of parallel thre
  • 如何在网页中渲染 Blender 模型?

    因此 我探索了在网络应用程序中渲染搅拌机模型的多种选项 现在我将模型导出为 gltf格式 这是我的代码 App js import React Suspense from react import App css import Model
  • 如何隐藏标签栏并在屏幕上显示完整的表格视图?

    在我的应用程序的实现中 我有一个带有 5 个不同选项卡的选项卡栏控制器 通过以下代码隐藏标签栏后 void hideTabBar for UIView view in self tabController view subviews if
  • 在堆栈视图内的 Uilabel 之间创建垂直线 [重复]

    这个问题在这里已经有答案了 我想在代码中创建一个带有自定义标头的 UICollectionView 因此 我创建了 UICollectionViewCell 的子类来描述我的自定义标头 我想在标题中以水平线显示五个标签 因此 我创建了五个标
  • Drools JBOSS 规则嵌套 IF

    我是 Jboss Rule 的新手 我已阅读文档 但找不到开始为以下代码示例编写规则的方法 For each User code in the list If User code 11 If User code 17 present in
  • 手动 DAG 运行设置单个任务状态

    我有一个没有时间表的 DAG 它根据需要手动运行 它有很多任务 有时我想通过手动将任务状态更改为成功来 跳过 一些初始任务 更改手动执行的 DAG 的任务状态失败 似乎是因为解析execution date 时出现错误 是否有另一种方法可以
  • Java中的正弦波曲线拟合

    我正在使用阿帕奇共享数学 https commons apache org proper commons math index html包 我有以下正弦波 0 90 0 85 0 80 0 83 0 89 0 90 0 85 0 80 0
  • 展平 ggplot2 中的 alpha 通道

    ggplot2 的某些对象 函数 支持 alpha 通道 http docs ggplot2 org current geom point html http docs ggplot2 org current geom point html
  • 在 Firefox 和 IE 中使用 XSLT 进行 XML 到 XML 转换

    我从几种 XML 格式转换为一种标准 我的 XSL 如下所示
  • 将格式化应用到 unix shell

    我一直在使用一些服务器日志查看tail f最近 我想如果我可以格式化输出 那么看到一些东西会更容易 实际上 我正在寻找的只是一种可能为某些单词着色 由正则表达式确定 的方法 并且可能删除某些单词 同样 由正则表达式确定 I know htt
  • 如何仅通过 HTML 调用函数内部函数

    我只是无法仅使用 HTML 访问函数内部的函数 如何仅使用 HTML 调用 setLayout 或者只能用Javascript调用
  • 如何在每个 xargs 命令之间休眠 1 秒?

    例如 如果我执行 ps aux awk print 1 xargs I echo 我想让 shell 在每次之间休眠 1 秒echo 如何更改我的 shell 命令 您可以使用以下语法 ps aux awk print 1 xargs I
  • 在 Groovy 中将字符串转换为 int

    我有一个String表示一个整数值并希望将其转换为int 是否有 Java 的 groovy 等价物Integer parseInt String Use the toInteger 方法来转换String to an Integer e
  • 嵌套在另一个内联块元素中的内联块元素具有 offsetTop

    我刚开始学习 HTML 现在我有一些代码 例如 div style height 300px width 500px font size 6 div style display inline block background pink wi
  • 如何从 json 提取数据到 javascript highchart?

    这是我的 json 文件的一部分 数据包含这个无用的符号 0 index 23 indicator ClassC Time month 201611 ww 201648 test time 0 0 p 48 0 Product RB 1 i
  • UIWebView 中的多选 HTML 文件输入不适用于视频

    我在使用 UIWebView Cordova 创建打包为本机 iOS 应用程序的上传表单时遇到问题 问题是 当在允许多重选择的元素中选择视频时 与只能进行单一选择不同 所选视频不会被 压缩 预处理并因此受到某种程度的限制 当尝试使用 Fil
  • Java:使用泛型实现对不同类型数字进行操作的类

    所以 假设我想编写一个对不同类型的数字进行操作的类 但我事先并不知道我将要对哪种数字 即整数 双精度数等 进行操作 我想使用泛型为这种情况创建一个通用类 就像是 Adder
  • 使用字符串变量 **kwargs 作为命名参数

    我正在尝试找出一种方法来循环 json 配置文件并使用键名称作为使用 kwargs 的方法的参数名称 我创建了一个 json 配置文件并使用键名作为方法 我只需将 set 附加到键名称即可调用正确的方法 我将 json 转换为字典以循环遍历
  • 尝试将星号添加到必填输入字段

    我想我不太明白 before and after因为我无法让这个工作 我只是想在表单中的必填字段后添加一个星号 我的代码很简单
  • 如何在 Django 中每天精确执行一次命令?

    我正在开发一个基于 Django Web 的项目 在该项目中我需要构建一个按以下顺序工作的应用程序 1 用户打开一个页面 需要在其中输入command and a time 2 Django应用程序将在每天的给定时间执行该命令 直到用户关闭