Django项目uwsgi配置和定时任务

在Linux环境下,安装uwsgi并配置项目运行,包括设置http端口、项目路径、虚拟环境等。同时,文章介绍了如何在Django项目的wsgi.py中添加uwsgi定时任务,通过uwsgi.register_signal和uwsgi.add_timer或uwsgi.add_cron进行定时任务注册与调度。
摘要由CSDN通过智能技术生成

uwsgi配置

pip install uwsgi
linux环境下才能使用
启动uwsgi:uwsgi --ini uwsgi.ini
重启uwsgi:uwsgi --stop uwsgi.pid
关闭uwsgi:uwsgi --reload uwsgi.pid

创建一个 uWSGI 的配置文件(如 uwsgi.ini)

[uwsgi]
# 项目的访问路径和端口
http = 127.0.0.1:8000
# 项目名称
project = dataScreenServer
# 项目工作目录
chdir = %(base)/%(project)
# 项目根目录
base = /home/liangyi/Desktop/dataScreen
# python虚拟机目录
virtualenv = %(base)/venv
# 启动的Django服务器名称
module=%(project).wsgi:application
# 是否开启主进程
master = True
# 开启进程的数量
processes = 2
# uwsgi启动进程号保存文件
pidfile = %(base)/master.pid
# uwsgi输出日志
daemonize=%(base)/logs/uwsgi.log  

uwsgi定时任务

修改django项目的wsgi.py文件
导入uwsgi:import uwsgi
定时任务执行函数:

def cron_test1(signum):
    print('定时任务测试1')


def cron_test2(signum):
    print(signum, '定时任务测试2')

jobs = [
    {
        "name": cron_test1,
        "time": [0, 17, -1, -1, 1],  # minute, hour, day, month, weekday, "-1" means "all",此例为每个周一的17:00
    },
    {
        "name": cron_test2,
        "time": [2],  # 每隔2秒
    }
]

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])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值