在django项目下执行定时任务

前面我介绍了使用uwsgi部署django项目,现在使用uwsgi来实现定时任务

uwsgi实现定时任务的Python接口详细请参考官方文档

把下面的代码加入uwsgi的入口程序中,可以写到Django程序的wsgi.py里面:

import uwsgi

# 将具体的cron job分到另一个文件中写,便于维护
from cron_job import *

for job_id, job in enumerate(jobs):
    uwsgi.register_signal(job_id, "", job[‘name‘])
    if len(job[‘time‘]) == 1:
        uwsgi.add_timer(job_id, job[‘time‘][0])
    else:
        uwsgi.add_cron(job_id, job[‘time‘][0], job[‘time‘][1], job[‘time‘][2], job[‘time‘][3], job[‘time‘][4])

以下是cron_job.py,增加、删除定时任务只需要修改这个Python脚本:

import time

def cron_print_time(signum):
    ISOTIMEFORMAT=‘%Y-%m-%d %X‘
    print time.strftime(ISOTIMEFORMAT, time.localtime())

def cron_print_hello(signum):
    print "hello"

jobs = [ { "name" : cron_print_time,
           "time": [0, 17, -1, -1, 1], #minute, hour, day, month, weekday, "-1" means "all",此例为每个周一的17:00
          },
         { "name" : cron_print_hello,
           "time": [2],  #每隔2秒
          },
]
时间: 2024-08-23 05:19:56

在django项目下执行定时任务的相关文章

Centos下执行定时任务Crontab命令介绍

1.Cron的启动与关闭 由于Cron是Linux的内置服务,可以用以下的方法启动.关闭这个服务: /sbin/service crond start           //启动服务 /sbin/service crond stop            //关闭服务 /sbin/service crond restart        //重启服务 /sbin/service crond reload         //重新载入配置 2.Cron配置文件 2.1全局配置文件 crontab

MySQL在Django框架下的基本操作(MySQL在Linux下配置)

[原]本文根据实际操作主要介绍了Django框架下MySQL的一些常用操作,核心内容如下: ------------------------------------------------------------------------------------------------- 1. Linux环境下MySQL的安装与配置 2. [Linux]MySQL在Django框架下的基本操作 3. 本文相关的一些参考网址 注:本文会根据实践,持续更新文档,如有错误,希望读者指出哈!~ -----

使用Nginx+Gunicorn+virtualenv+supervisor来部署django项目

安装Virtualenv 终端下输入 sudo pip3 install virtualenv virtualenv 可以创建一个拥有自己安装目录的环境, 这个环境不与其他虚拟环境共享库, 能够方便的管理python版本和管理python库. 下面是创建python3的虚拟环境 #创建ENV目录 [email protected]:~# cd ~ && mkdir ENV && cd ENV [email protected]:~/ENV# ls #创建python3虚拟环

Django 项目celery beat报错:Pidfile already exists

背景 Django项目运行celery定时任务celery beat时,报错如下: 排查 经过排查,发现celerybeat运行时,会自动创建一个pidfile文件,默认为celerybeat.pid,存放在项目根目录下: 正常情况下:celerybeat停止运行时,celerybeat.pid文件会自动生成,下次运行时再自动创建. 上述问题出现的原因就是celerybeat时非正常停止运行,导致了celerybeat.pid文件没有自动删除,以至于再次运行时报错. 解决办法 手动删除celer

Nginx+uwsgi或fastcgi部署Django项目

nginx+uwsgi ubuntu下先安装下C编译器和Python环境: sudo apt-get install build-essential python-dev 使用pip安装uwsgi: pip install uwsgi nginx配置: 可以单独为站点设置一个配置文件: sudo vim /etc/nginx/sites-enabled/mysite 或者直接在nginx.conf中设置: sudo vim /etc/nginx/nginx.conf 设置: server { l

windows7下django项目搭建

参考视频教程 http://study.163.com/course/    http://www.bilibili.com/video/av8915600/ 首先在桌面新建一个文件夹test,然后在终端切入该目录 C:\Users\amazing>cd Desktop\test 接输入命令 C:\Users\amazing\Desktop\test>django-admin startproject face 如果看的是linux环境的视频教程会发现,命令有点不同.linux下为 djang

ubuntu下python2-python3版共存,创建django项目出现的问题

ubuntu系统下:存在python2.7.14与python3.6.3 这时候需要安装使用django,可以使用pip命令分别安装django(前提是已经各自安装好pip) python2下:sudo pip install django python3下:sudo pip3 install django 创建django项目: django-admin.py startproject HelloWorld 可能出现问题:未找到django-admin.py没命令 这是需要在安装python-

Linux 下部署Django项目

Linux 下部署Django项目 说明:本文所使用的环境为CentOS 6+Python2.7+Django1.11 安装Django.Nginx和uWSGI 1.确定已经安装了2.7版本的Python: 2.安装python-devel yum install python-devel 3.安装uwsgi pip install uwsgi 测试uwsgi是否能正常工作 1.新建一个index.py: # index.py def application(env, start_respons

跟着课程总结一下django项目的开发执行流程

在win10中的虚拟机内: Ubuntu16.04系统. git(分布式管理系统). mkvirtualenv(可以创建单独的python的运行环境,就是不会影响别的python的运行环境). live-server(这个在终端可以运行前段网页,相当于开了个前段服务器). # 请看外一个live-server安装 1.在码云上创建自己的项目 名称:meiduo_mall_03(因为原来电脑双系统的elementaryOS系统崩溃,所以新建了一个) 选择语言:Python 忽略的文本模板:Pyth