python - 请教一下大家,在django或者其他的项目中做定时任务?
PHPz
PHPz 2017-04-18 09:23:53
[Python讨论组]
有时候,需要在项目中做一些定时的任务,例如:我需要每隔几分钟去访问一个接口,然后根据返回值,做后续操作。

请教下,如何来实现?(PS:如果是用系统的crontab就不要说了。)

目前google了一种方法是使用celery。请加下大家,是否是条长期可行之路。
PHPz
PHPz

学习是最好的投资!

全部回复(8)
PHP中文网

如果用 Django 自带的服务器运行网站的话用 django-celery 就可以。但如果是用 uWSGI 跑的网站的话定时任务最好用 uWSGI 的 signal 做,其他方式的定时任务很可能会因为长时间占用线程的原因被 uWSGI kill 掉,之前我做过一个网站需要定时爬数据选择了好几种方案,最后还是用了 uWSGI 的 signal 比较稳定。

PHPz

django-celery可以满足你的要求

阿神

也可以使用独立的Celery,针对定时任务使用Celery的beat就可以了。

黄舟

可以直接用crontab, 如果希望更好的管理定时进程(比如使用supervisord工具)可以使用celery定时任务。
这里跑个题: flask配置celery定时任务

PHP中文网

有人做了一个Django的模块:django_crontab

高洛峰

对于定时任务,我一般使用的是huey,之前使用过crontab,但是服务器上的虚拟环境使用脚本activate不了,搞了很久也没有解决到,后来就找到了huey,它其实类似于在django项目中安装了一个app,可以实现多线程、周期性等功能。

阿神

为啥不用crontab?crontab是最稳定的。

ringa_lee

可以使用 Scheduler,因内容稍多,如果需要例子可以找我。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号