首页 > 数据库 >apscheduler mysql 持久化任务

apscheduler mysql 持久化任务

时间:2022-12-26 16:34:23浏览次数:61  
标签:持久 pymysql apscheduler job https mysql my

apscheduler mysql 持久化任务

1、下载第三方包

这里使用pymysql连接mysql

pip install apscheduler

pip install pymysql

pip install sqlalchemy

2、直接参考代码

import datetime

from apscheduler.executors.pool import ThreadPoolExecutor, ProcessPoolExecutor
from apscheduler.jobstores.sqlalchemy import SQLAlchemyJobStore
from apscheduler.schedulers.blocking import BlockingScheduler

user = 'root'  # 用户名
password = 'gip123GIP'  # 密码
host = '127.0.0.1'  # 主机IP
port = '3306'  # 主机端口
dbname = 'gip'  # 数据库名称
url = f"mysql+pymysql://{user}:{password}@{host}:{port}/{dbname}?charset=utf8"  # 使用pymysql连接数据库,字符集为UTF8

job_stores = {
    'default': SQLAlchemyJobStore(url=url, tablename='my_tasks')  # 定时任务表名为my_tasks
}
executors = {
    'default': ThreadPoolExecutor(20),
    'processpool': ProcessPoolExecutor(5)
}
job_defaults = {
    'coalesce': True,  # 堆积后只执行最后一个
    'max_instances': 1,  # 最大的实例只能存在一个

}
scheduler = BlockingScheduler(executors=executors, job_defaults=job_defaults, jobstores=job_stores,
                              timezone='Asia/Shanghai')


def my_job():
    print(f"现在时间:{datetime.datetime.now()}")


scheduler.add_job(my_job, 'cron', id='my_job', second='*/10', timezone='Asia/Shanghai',
                  replace_existing=True)  # 10秒运行一次
scheduler.start()

数据库

image-20221226141038846

参考链接:

https://apscheduler.readthedocs.io/en/3.x/userguide.html#code-examples

https://www.jianshu.com/p/e36236c1df08

https://blog.csdn.net/wyw875960418/article/details/107977717

https://www.moban555.com/article/1270071.html

https://blog.csdn.net/hqzxsc2006/article/details/89950695

标签:持久,pymysql,apscheduler,job,https,mysql,my
From: https://www.cnblogs.com/rainbow-tan/p/17006118.html

相关文章

  • mysql实现limit分页
    1.背景:背景1:查询返回的记录太多了,查看起来很不方便,怎么样能够实现分页查询呢?背景2:表里有4条数据,如果只想要显示第2、3条数据怎么办呢?MySQL中使用LIMIT实现分页......
  • 我对《Mysql死锁排查:insert on duplicate死锁一次排查分析过程 - 少说点话 - 博客园》
    原文在这里:Mysql死锁排查:insertonduplicate死锁一次排查分析过程 比较菜,看了一遍还是不懂死锁是怎么形成的。绕了很多圈才全理解。特此记录。 关于mysql版本我先......
  • MySql在ONLY_FULL_GROUP_BY模式下分组查询报错问题的解决
    MySQL5.7.5及以上版本在进行groupby查询报错:ORDERBYclauseisnotinGROUPBYclauseandcontainsnonaggregatedcolumn或SELECTlistisnotinGROUPBYclause......
  • MySQL索引
    1.索引是什么索引是一个单独的、存储在磁盘上的数据库结构,包含着对数据表里所有记录的引用指针。简单来讲,数据库索引就像是书前面的目录,能加快数据库的查询速度。(1)索引......
  • 关于使用DBeaver连接MySQL-8.0.30-报错-Public Key Retrieval is not allowed
    关于使用DBeaver连接MySQL-8.0.30,报错:PublicKeyRetrievalisnotallowed也即是:不允许公钥检索但如果此时,我们在cmd命令行以DBeaver使用的用户名,通过mysql-uxxx-p......
  • MySQL 8.0 为什么会放弃查询缓存?
    什么是查询缓存?查询缓存就是将一次查询结果存储在内存中,假如下一次查询结果在内存中,就直接在内存中读取。MySQL查询缓存原理就是将查询SQL进行Hash处理,然后将结果存进内......
  • StoneDB 团队成员与 MySQL 之父 Monty 会面,共话未来数据库形态
    「9月中旬,StoneDB团队成员有幸与开源数据库MySQL和MariaDB的创始人Michael“Monty”Widenius(后文简称为Monty)见了个面,其随行的团队成员告诉我们,疫情前Monty每年还能来一......
  • MaterializeMySQL引擎
    1、概述MySQL的用户群体很大,为了能够增强数据的实时性,很多解决方案会利用binlog将数据写入到ClickHouse。为了能够监听binlog事件,我们需要用到类似canal这样的第......
  • 如何理解redis两种不同的持久化方式
    其实redis就是一种高级的以键值对形式存储数据的数据库,而它的好处就是他可以支持数据的持久化,其实redis之所以会有这样的优点,主要是因为,redis的数据都是存放在内存中的,如果......
  • 什么是MySQL的复制表?
    ......