栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在Django中每天一次在确切时间执行命令?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在Django中每天一次在确切时间执行命令?

虽然您可以让django应用在系统上添加和删除cron作业,但另一种更像django式的方法是使用Celery。它是一个任务队列系统,可以同时运行同步任务和异步任务。

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

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

它们还具有周期任务的更细化版本,该版本复制了crontab的调度:

from celery.schedules import crontabCELERYBEAT_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芹菜的版本

此解决方案的好处是您无需编辑和维护系统级的cron选项卡。此解决方案已高度集成到django中,用于此确切用途。

使用cron的另一个 巨大
好处就是Celery可以随您的系统扩展。如果使用的是基本系统crontab,则这些任务将位于承载该应用程序的服务器上。但是,如果您需要扩展站点并在5个Web应用程序节点上运行它怎么办?您将需要集中该crontab。如果您使用的是Celery,则有许多关于如何传输和存储任务的选项。它固有地是分布式的,并且可以同步到所有应用程序服务器。它是便携式的。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/611575.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号