广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Django+Nginx+uWSGI定时任务的实现方法
  • 549
分享到

Django+Nginx+uWSGI定时任务的实现方法

2024-04-02 19:04:59 549人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录摘要使用uWSGI的cron使用Socket.bind锁使用uWSGI的mule摘要 在Nginx和uWSGI还没配置时,单独在url.py使用apscheduler设置定时任务

摘要

Nginx和uWSGI还没配置时,单独在url.py使用apscheduler设置定时任务,使用python manage.py run server,运行正常;但是在配置完成uWSGI后,入口从manage.py变为uwsgi.py,导致需要用户访问后才能加载url.py的apscheduler定时任务,并且随用户访问次数,同一定时任务重复启动。

使用uWSGI的cron

方法一:将url.py的apscheduler定时任务迁移到uwgsi.py

方法二:使用 uWSGI的cron

uWSGI的cron官网 : https://uwsgi-docs-zh.readthedocs.io/zh_CN/latest/Cron.html

end=1
while end:
    try:
        import uwsgi
        //建立job_id为0,每天12:12启动fuc的定时器,-1代表*(全部)
        uwsgi.reGISter_signal(0, "", fuc)
        uwsgi.add_cron(0, 12,12,-1,-1,-1)
        end=0
    except:
        pass

方法一或方法二都需要设置uwsgi.ini的worker=1

[uwsgi]
# 进程个数
workers=1

使用socket.bind锁

使用uWSGI的cron只限于单进程情况下使用,如果多进程会导致定时器重复启动问题,可以使用socket.bind锁改造定时任务。

    try:
        import socket
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        sock.bind(("127.0.0.1", 47200))
    except socket.error:
        logger.info('禁止成功')
    else:
        //定时任务方法

存在问题,可能存在同时获取 sock.bind((“127.0.0.1”, 47200)),能够减缓重复问题,不能完全解决。

使用uWSGI的mule

第一步:新建一个Package,编写__init__.py

//如果是Django项目,需要加上才可以使用djanGo的model
//import django
//os.environ.setdefault('DJANGO_SETTINGS_MODULE', '项目名.settings')
//django.setup()

from apscheduler.schedulers.background import BackgroundScheduler
scheduler = BackgroundScheduler()
//scheduler.add_job不详说,具体看官网文档
scheduler.add_job(...,timezone='Asia/Shanghai')
scheduler.start()
try:
    import uwsgi
    while True:
        sig = uwsgi.signal_wait()
except Exception as err:
    pass

第二步:设置uwsgi.ini,增加mule = package包名/init.py

[uwsgi]
mule = package包名/__init__.py

到此这篇关于Django+Nginx+uWSGI 定时任务的实现方法的文章就介绍到这了,更多相关Django Nginx uWSGI 定时任务内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Django+Nginx+uWSGI定时任务的实现方法

本文链接: https://www.lsjlt.com/news/163286.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Django+Nginx+uWSGI定时任务的实现方法
    目录摘要使用uWSGI的cron使用socket.bind锁使用uWSGI的mule摘要 在Nginx和uWSGI还没配置时,单独在url.py使用apscheduler设置定时任务...
    99+
    2022-11-13
  • Django+Nginx+uWSGI定时任务怎么实现
    今天小编给大家分享一下Django+Nginx+uWSGI定时任务怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。摘要...
    99+
    2023-06-28
  • Django定时任务实现方法有哪些
    本篇内容介绍了“Django定时任务实现方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 前言为了做一些报表,最近需要每日从爱站...
    99+
    2023-06-04
  • mysql实现定时任务的方法
    自MySQL5.1.6起,增加了一个非常有特色的功能-事件调度器(Event Scheduler),可以用做定时执行某些特定任务(例如:删除记录、对数据进行汇总、数据备份等等),来取代原先只能由操作系统的计...
    99+
    2022-10-18
  • Django+Celery实现定时任务的示例
    目录一、前言二、配置使用定义与触发任务扩展三、Django中使用定时任务二次开发一、前言   Celery是一个基于python开发的分布式任务队列,而做python WEB开发最为...
    99+
    2022-11-12
  • django-celery-beat搭建定时任务的实现
    目录一、创建django项目和app1、安装定时任务第三方包2、创建django项目并创建一个使用定时任务的app2、新建一个celery.py文件3、创建配置文件config.py...
    99+
    2023-03-21
    django 搭建定时任务 django-celery-beat 定时任务
  • Java 实现定时任务的三种方法
    目录1、 sleep 2、Timer 3、ScheduledExecutorService 总结 是的,不用任何框架,用我们朴素的 Java 编程语言就能实现定时任务。 今天,栈长就...
    99+
    2022-11-11
  • 定时任务的实现方法有哪些
    本篇内容介绍了“定时任务的实现方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一. Linux自带...
    99+
    2022-10-19
  • Java实现定时任务的方法详解
    目录前言定时任务是什么定时任务的有哪些是实现方式纯手写单线程循环Timer 和它的小伙伴ScheduledExecutorServiceSpring 提供的定时任务总结前言 学过定时...
    99+
    2022-11-13
    Java实现定时任务 Java定时任务
  • SpringTask实现定时任务方法讲解
    目录1.注解方式2.配置文件xml方式SpringTask是Spring自带的功能。实现起来比较简单。 使用SpringTask实现定时任务有两种方式: 1.注解方式 基于注解@Sc...
    99+
    2023-02-15
    SpringTask定时任务 SpringBoot定时任务
  • JavaSpring分别实现定时任务方法
    目录java实现定时任务Timer+TimerTask示例弊端ScheduledThreadPoolExecutor示例Spring定时任务示例原理java实现定时任务 Jdk自带的...
    99+
    2022-11-13
  • Android实现定时任务的方法有哪些
    Android实现定时任务的方法有以下几种: 使用Handler:可以通过Handler的postDelayed()方法来实现定...
    99+
    2023-10-26
    Android
  • Golang实现CronJob(定时任务)的方法详解
    目录引言类库介绍扩展性强主流程类库改造打印任务列表信息根据名称移除脚本改造效果引言 最近做了一个需求,是定时任务相关的。以前定时任务都是通过 linux crontab 去实现的,现...
    99+
    2023-05-14
    Golang实现定时任务 Golang定时任务 Golang CronJob
  • Python定时任务的实现方法是什么
    今天就跟大家聊聊有关Python定时任务的实现方法是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、定时任务定时任务,顾名思义: 定时执行的任务,可以是一段bash命令,也可以...
    99+
    2023-06-25
  • 关于Django使用 django-celery-beat动态添加定时任务的方法
    版本信息 # 插件安装 Django==2.2.2 django-celery-beat==2.1.0 django-redis==4.8.0 mysqlclient==2.0...
    99+
    2022-11-12
  • Java -- 定时任务实现方式
    在Java开发中,定时任务是一种十分常见的功能. 定时任务是在约定时间内执行的一段程序 如每天凌晨24点备份同步数据,又或者电商平台 30 分钟后自动取消未支付的订单,每隔一个小时拉取一次数据等都需要使用到定时器 批量处理数据:批量统计上个...
    99+
    2023-09-09
    Java Quartz Scheduled Xxl-Job
  • Python定时任务实现方案
    目录1、定时任务2、Python的定时任务2.1 几种常见的方案2.1.1 schedule2.1.2 Jenkins2.1.3 Celery2.2 题外话之持久化2.2.1 ApS...
    99+
    2022-11-12
  • Java项目实现定时任务的三种方法
    目录1 使用java.util.Timer2 使用ScheduledExecutorService3 使用Spring Task总结 1 使用java.util.Timer...
    99+
    2022-11-13
  • Spring Boot使用Schedule实现定时任务的方法
    目录0. 开发环境1. 简单定时任务1.1 @Scheduled(cron = “0/10 * * * * ”)1.2 @Scheduled(fixedRat...
    99+
    2023-03-22
    Spring Boot Schedule定时任务 Spring Boot 定时任务
  • Spring动态添加定时任务的实现方法
    本篇内容主要讲解“Spring动态添加定时任务的实现方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Spring动态添加定时任务的实现方法”吧!一、背景在工作中,有些时候我们有些定时任务的执行...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作