首页 > 请教一下大家,在django或者其他的项目中做定时任务?

请教一下大家,在django或者其他的项目中做定时任务?

有时候,需要在项目中做一些定时的任务,例如:我需要每隔几分钟去访问一个接口,然后根据返回值,做后续操作。

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

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

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


django-celery可以满足你的要求


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


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


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


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


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


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

【热门文章】
【热门文章】