广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Tornado集成Apscheduler
  • 928
分享到

Tornado集成Apscheduler

TornadoApscheduler 2023-01-31 00:01:05 928人浏览 安东尼

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

摘要

熟悉python的人可能都知道,Apscheduler是Python里面一款非常优秀的任务调度框架,这个框架是从鼎鼎大名的Quartz移植而来。 之前有用过flask版本的Apscheduler做定时任务。刚好前不久接触了Tornado,

熟悉python的人可能都知道,Apscheduler是Python里面一款非常优秀的任务调度框架,这个框架是从鼎鼎大名的Quartz移植而来。

之前有用过flask版本的Apscheduler做定时任务。刚好前不久接触了Tornado,顺便玩玩Tornado版本的Apscheduler。

本篇做了一个简单的Wdb页面,用于添加和删除定时任务,小伙伴们可以基于这个做一些扩展,比如把定时定时任务写入数据库,改变cron规则等等。

#新增任务(需要动态改变job_id的值)

Http://localhost:8888/scheduler?job_id=1&action=add

#删除任务(需要动态改变job_id的值)

http://localhost:8888/scheduler?job_id=1&action=remov

执行结果可以在console看到

 

from datetime import datetime
from tornado.ioloop import IOLoop, PeriodicCallback
from tornado.WEB import RequestHandler, Application
from apscheduler.schedulers.tornado import TornadoScheduler


scheduler = None
job_ids   = []

# 初始化
def init_scheduler():
    global scheduler
    scheduler = TornadoScheduler()
    scheduler.start()
    print('[Scheduler Init]APScheduler has been started')

# 要执行的定时任务在这里
def task1(options):
    print('{} [APScheduler][Task]-{}'.fORMat(datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f'), options))


class MainHandler(RequestHandler):
    def get(self):
        self.write('<a href="/scheduler?job_id=1&action=add">add job</a><br><a href="/scheduler?job_id=1&action=remove">remove job</a>')


class SchedulerHandler(RequestHandler):
    def get(self):
        global job_ids
        job_id = self.get_query_argument('job_id', None)
        action = self.get_query_argument('action', None)
        if job_id:
            # add
            if 'add' == action:
                if job_id not in job_ids:
                    job_ids.append(job_id)
                    scheduler.add_job(task1, 'interval', seconds=3, id=job_id, args=(job_id,))
                    self.write('[TASK ADDED] - {}'.format(job_id))
                else:
                    self.write('[TASK EXISTS] - {}'.format(job_id))
            # remove
            elif 'remove' == action:
                if job_id in job_ids:
                    scheduler.remove_job(job_id)
                    job_ids.remove(job_id)
                    self.write('[TASK REMOVED] - {}'.format(job_id))
                else:
                    self.write('[TASK NOT FOUND] - {}'.format(job_id))
        else:
            self.write('[INVALID PARAMS] INVALID job_id or action')


if __name__ == "__main__":
    routes    = [
        (r"/", MainHandler),
        (r"/scheduler/?", SchedulerHandler),
    ]
    init_scheduler()
    app       = Application(routes, debug=True)
    app.listen(8888)
    IOLoop.current().start()

 

--结束END--

本文标题: Tornado集成Apscheduler

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

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

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

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

下载Word文档
猜你喜欢
  • Tornado集成Apscheduler
    熟悉Python的人可能都知道,Apscheduler是python里面一款非常优秀的任务调度框架,这个框架是从鼎鼎大名的Quartz移植而来。 之前有用过Flask版本的Apscheduler做定时任务。刚好前不久接触了Tornado,...
    99+
    2023-01-31
    Tornado Apscheduler
  • Flink 1.10 正式发布!——与Blink集成完成,集成Hive,K8S
    Apache Flink社区宣布Flink 1.10.0正式发布! 本次Release版本修复1.2K个问题,对Flink作业的整体性能和稳定性做了重大改进,同时增加了对K8S,Python的支持。 这个版本标志着与Blink集...
    99+
    2018-03-11
    Flink 1.10 正式发布!——与Blink集成完成,集成Hive,K8S
  • Android集成Flutter
    目录Android 集成Flutter1, Hello Flutter2, 引入 Flutter 模块3,使用Flutter3.1 添加依赖 3.2 运行Flutter页面3.2.1...
    99+
    2022-11-12
  • SpringBoot集成webservice
    前言 之前在工作中,有时候需要去对接第三方的医院,而很多医院的his系统用的都是老技术(WebService)。一直在对接webservice接口,却不知道webservice接口是怎么实现的,这一次...
    99+
    2023-09-23
    spring boot java spring
  • MyEclipse集成Python
    项目中要用到Python,今天下午下载下来安装好后研究了一下,用了一会自带的ide后就感觉有点别扭了,因为用惯了MyEclispe和Eclipse,与之相比,python自带的ide没有自动提示功能,所以很别扭,网上找了一下,发现Ecli...
    99+
    2023-01-31
    MyEclipse Python
  • springboot集成Ldap
    一、什么是Ldap 轻型目录访问协议(英文:Lightweight Directory Access Protocol,缩写:LDAP,/ˈɛldæp/)是一个开放的,中立的,工业标准的应用协议,通过...
    99+
    2023-09-13
    spring boot 服务器 后端
  • Android 集成flutter
    在已有Android原生工程基础上集成Flutter Module。 先说坑 新版flutter SDK已经移除了Flutter.java这个类。因此你想通过Flutter.c...
    99+
    2022-06-06
    flutter Android
  • SpringBoot2集成Couchbase
    Couchbase 虽然是MongoDB最有潜力的竞争对手,但是其在数据库方面的开源程度还远远不够,很多高级特性都没有开放出来。目前虽然被SpringBoot加持有了一些光环,但是其文档和代码注释方面做的仍然逊色不少,这与其开源程度有着很大...
    99+
    2020-02-01
    SpringBoot2集成Couchbase
  • nodejs集成sqlite
    正在物色node上面的轻量级嵌入式数据库,作为嵌入式数据库的代表,sqlite无疑是个理想的选择方案。npm上集成sqlite的库主要有两个——sqlite3和realm。realm是一个理想的选择方案,它...
    99+
    2022-10-18
  • Springboot集成GraphicsMagick
    目录以什么方式集成?项目集成1、将gm命令行工具引入到项目中2、在项目启动的时候自动初始化环境3、gm进程池化性能初测写在最后以什么方式集成? JNI / 命令行(im4java)...
    99+
    2022-11-12
  • jenkins集成python
    1.创建一个自由风格的job 2.配置构建选择“Execute Windows batch command”,输入: d:cd learn\pythonpython main.py 构建即可...
    99+
    2023-01-31
    jenkins python
  • Android集成Unity
    前言 随着前两年元宇宙的提出,虚拟现实开始在各大平台大展身手。各个平台都开始搭上了元宇宙的列车,Unity作为虚拟引擎中的热门,渲染效果和开发效率极其出色;Android作为移动开发的巨头之一也搭上了元宇宙这趟列车。今天,小编带大家将Uni...
    99+
    2023-09-04
    android
  • ntfs-3g 集成
    ntfs-3g 集成 1. 下载 http://www.tuxera.com/community/ntfs-3g-download/ ntfs-3g-2010.8.8 2. 建立makefile&...
    99+
    2023-01-31
    ntfs
  • Springboot集成Neo4j
    一、概述  1.为什么图形数据库?         生活在一个互联的世界中,大多数领域需要处理丰富的连接集以了解真正发生的事情。通常,我们发现项目之间的联系与项目本身一样重要。         虽然现有的关系数据库可以存储这些关...
    99+
    2023-09-05
    spring boot java spring
  • springboot集成websocket
    springboot集成websocket 1. 前言 ​ 这里我们使用springboot搭建一个轻量级的websocket服务,同时提供4个入参。使用websocket服务可以轻松和微信小程序、支付宝小程序、网页就行双向通讯,非常实用方...
    99+
    2023-08-16
    spring boot websocket java 支付宝小程序
  • SpringBoot集成 ElasticSearch
    Spring Boot 集成 ElasticSearch 对于ElasticSearch比较陌生的小伙伴可以先看看ElasticSearch的概述ElasticSearch安装、启动、操作及概念简介 好的开始啦~ 1、基础操作 1.1、导入...
    99+
    2023-08-18
    elasticsearch spring boot java maven intellij-idea
  • Flutter集成Unity
    前言: 最近做项目时需要用到Flutter来做跨平台开发,但是项目中又用到了虚拟场景,这样一来就涉及到了Unity,那么总结下来便是用AndroidStudio来创建Flutter项目,将Unity项目嵌入到Flutter项目中,本篇文章就...
    99+
    2023-08-31
    unity flutter 游戏引擎
  • PHP与数据集市的集成
    随着数据分析在企业中的重要性越来越受到越来越多的关注,数据集市(DW)的建设也逐渐成为了企业数据管理的重要组成部分。而PHP作为一种广泛应用于Web开发的编程语言,其与数据集市的集成也变得越来越重要。数据集市是指一个企业中的数据仓库(Dat...
    99+
    2023-05-17
    集成 PHP 数据集市
  • 钉钉集成erp
    一、企业应用集成 钉钉集成ERP系统的第一步是企业应用集成,即将不同的系统整合在一个平台上,实现数据的互通、共享和协同。企业可以通过钉钉搭建企业应用集成平台,将不同的系统进行统一的开发、部署和管理,以实现数据互通、共享和协同的目的。在这个...
    99+
    2023-10-28
    erp
  • CAS与spring3集成
    Server版本:cas-server-3.5.2Client版本:cas-client-3.1 SSL配置方式:第一步:生成证书密钥 进入到cmd后输入keytool -genkey -alias tomcat -keystore myk...
    99+
    2023-01-31
    CAS
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作