当前位置: 首页 > news >正文

淮安经济技术开发区建设局网站wordpress谷歌广告位插件

淮安经济技术开发区建设局网站,wordpress谷歌广告位插件,有人在天琥设计学过吗,河南省最新任命Apscheduler 介绍 核心组件: 调度器、作业存储、执行器、触发器 调度器 BlockingScheduler 阻塞的调度器,适用于脚本 BackgroundScheduler 后台调度器,适用于非阻塞的应用如Web应用 AsyncIOScheduler 适用于 asyncio 的调度器 GeventSchedu…

Apscheduler 介绍

核心组件: 调度器、作业存储、执行器、触发器

调度器

BlockingScheduler

        阻塞的调度器,适用于脚本

BackgroundScheduler

        后台调度器,适用于非阻塞的应用如Web应用

AsyncIOScheduler

        适用于 asyncio 的调度器


GeventScheduler

         适用于 Gevent 的调度器


TornadoScheduler

        适用于 Tornado 的调度器


TwistedScheduler

        适用于 Twisted 的调度器。

作业存储

        保存作业的地方,默认是使用 内存存储,也可以持久化到数据库,支持redis、mongdb等

执行器

        执行作业的工具,默认是ThreadPoolExecutor和ProcessPoolExecutor,也就是线程池和进程池

触发器

        确定何时运行作业,主要有三种:date、interval、cron

date

        在特定时间点运行一次,也就只运行一次

interval

        按指定间隔运行,例如每五秒运行

cron

        可支持复杂的规格,例如每天某个时间点执行,每周一执行等

        更多详细介绍请转到官网

基本用法

1.创建调度器

from apscheduler.schedulers.background import BackgroundSchedulerscheduler = BackgroundScheduler()

 

2.具体的定时任务方法

def job_function(**kwargs):print(kwargs.get("name", "没有传递名称"))print(f"定时任务执行了:{kwargs.get('执行时间', datetime.now())}")

3.设置触发器

# scheduler.add_job(job_function, 'date', kwargs={"name": "张三", }, **{"run_date": datetime.now() + timedelta(seconds=1)})scheduler.add_job(job_function, 'interval', seconds=2)# scheduler.add_job(job_function, 'cron', **{"start_date": "2024-06-18 10:38:00", "end_date": "2024-06-18 10:38:20", "second": "*/2"})

 

4.运行定时任务

scheduler.start()

整体代码

from datetime import datetime
from apscheduler.schedulers.background import BackgroundSchedulerdef job_function(**kwargs):print(kwargs.get("name", "没有传递名称"))print(f"定时任务执行了:{kwargs.get('执行时间', datetime.now())}")scheduler = BackgroundScheduler()
# scheduler.add_job(job_function, 'date', kwargs={"name": "张三", }, **{"run_date": datetime.now() + timedelta(seconds=1)})# scheduler.add_job(job_function, 'interval', seconds=2)# scheduler.add_job(job_function, 'cron', **{"start_date": "2024-06-18 10:38:00", "end_date": "2024-06-18 10:38:20", "second": "*/2"})scheduler.add_job(job_function, 'cron', )
# scheduler.add_job(job_function, 'cron', **{"start_date": "2024-06-18 10:38:00", "end_date": "2024-06-18 10:38:20", "second": "*/2"})scheduler.start()while True:pass

触发器常用规则

可以使用对应的trigger对象进行建立对应的规则,也可以直接用简写方式

trigger对象

from apscheduler.triggers.date import DateTrigger

from apscheduler.triggers.interval import IntervalTrigger

from apscheduler.triggers.cron import CronTrigger

因为这些写法相对繁琐,博主更推荐用简写方式,所以就不详解展开介绍对象写法,就简单给出几个例子

sched.add_job(job_function, trigger=DateTrigger(run_date=datetime(2023, 10, 1, 10, 30)))

sched.add_job(job_function, trigger=IntervalTrigger(hours=2))

sched.add_job(job_function, trigger=CronTrigger(day_of_week='mon', hour='8,12', minute='30'))

add_job 可接收的参数

func, trigger=None, args=None, kwargs=None, id=None, name=None,
                misfire_grace_time=undefined, coalesce=undefined, max_instances=undefined,
                next_run_time=undefined, jobstore='default', executor='default',
                replace_existing=False, **trigger_args

func 要运行的函数对象,注意是函数对象,不是函数名

args和kwargs是传递给需要执行函数的参数

**trigger_args 才是给触发器设置规则的参数

date 支持的规则

可以传入一个时间对象,或者是满足时间格式的字符串

时间对象:datetime.now()

scheduler.add_job(job_function, 'date', kwargs={"name": "张三",}, **{"run_date": datetime.now() + timedelta(seconds=1)})

效果:在当前时间再加一秒后执行

字符串:2024-06-18 10:02:00
scheduler.add_job(job_function, 'date', kwargs={"name": "张三",}, **{"run_date": "2024-06-18 10:02:00"})

效果:在2024-06-18 10:02:00执行

interval 支持的规则

weeks (int)  –  间隔几周 
days (int)  –  间隔几天 
hours (int)  –  间隔几小时 
minutes (int)  –  间隔几分钟 
seconds (int)  –  间隔多少秒 
start_date (datetime|str)  –  开始日期 
end_date (datetime|str)  –  结束日期 
timezone (datetime.tzinfo|str)  –  时区 

间隔*秒后执行

scheduler.add_job(job_function, 'interval', seconds=2)

效果:每两秒执行一次

cron 支持的规则

(int|str) 表示参数既可以是int类型,也可以是str类型
(datetime | str) 表示参数既可以是datetime类型,也可以是str类型
year (int|str) – 4-digit year -(表示四位数的年份,如2008年)
month (int|str) – month (1-12) -(表示取值范围为1-12月)
day (int|str) – day of the (1-31) -(表示取值范围为1-31日)
week (int|str) – ISO week (1-53) -(格里历2006年12月31日可以写成2006年-W52-7(扩展形式)或2006W527(紧凑形式))
day_of_week (int|str) – number or name of weekday (0-6 or mon,tue,wed,thu,fri,sat,sun) - (表示一周中的第几天,既可以用0-6表示也可以用其英语缩写表示)
hour (int|str) – hour (0-23) - (表示取值范围为0-23时)
minute (int|str) – minute (0-59) - (表示取值范围为0-59分)
second (int|str) – second (0-59) - (表示取值范围为0-59秒)
start_date (datetime|str) – earliest possible date/time to trigger on (inclusive) - (表示开始时间)
end_date (datetime|str) – latest possible date/time to trigger on (inclusive) - (表示结束时间)
timezone (datetime.tzinfo|str) – time zone to use for the date/time calculations (defaults to scheduler timezone) -(表示时区取值)

每周几执行

可以填写 0-6 或者 mon,tue.wed,thu,fri,sat,sun 

scheduler.add_job(job_function, 'cron',**{"day_of_week": "mon"})  

效果:每周一执行

每天固定时间执行

scheduler.add_job(job_function, 'cron',**{ hour='8, 12', minute='30'})

效果:每天早上8点30分和中午12点和30分运执行

每天时间范围内执行

scheduler.add_job(job_function, 'cron', **{"start_date": "2024-06-18 10:38:00", "end_date": "2024-06-18 10:38:20", "second": "*/2"})

效果:每天 2024-06-18 10:38:00 开始执行至2024-06-18 10:38:20 且每2秒执行一次

http://www.yayakq.cn/news/532563/

相关文章:

  • 深圳网站制作收费wordpress app无法登陆
  • 电子商城网站建设深圳建网站
  • 怎样登陆网站后台江苏企业seo推广
  • 网页制作与网站建设技术大全 下载邯郸做网站
  • 石家庄网站托管公司免费 企业网站管理系统
  • 购物网站用户管理卖老石器老榆木做哪个网站好
  • 软文营销的五个特点做网站怎么优化
  • 站酷网官网入口靖江市属于哪里有做网站的
  • 帮别人做网站 别人违法徐州建设安全监督网站
  • 中国制造网官方网站入口南充网站建设hulingwl
  • 种子网站开发网站快速排名技术
  • 免费网站建设推广企业作风建设心得体会
  • 屏幕分辨率 网站开发台州地区网站建设
  • 国内优秀的网站三门峡做网站推广
  • 海口模板网站建站网店logo设计
  • 网站改版规则企业网络架构图
  • 网站优化公司大家好亚马逊企业网站建设
  • 淘宝客网站如何做造价咨询公司加盟分公司
  • 重庆荣昌网站建设建设通官网app下载
  • 广源建设集团有限公司网站青岛的互联网公司有哪些
  • 潍坊建网站小说网站怎么建设
  • 网站开发教程视频ifront做原型控件的网站
  • 中科建建设发展有限公司网站如何获取网站根目录链接
  • 网站建设合同属于购销吗杭州优化建筑设计
  • 天猫优惠券网站怎么做天猫购物商城官网
  • 专业的开发网站建设价格手机网站按那个尺寸做
  • 怎么做公司的中英文网站server 2012 做网站
  • 网站建设管理制度实施方案中职网络营销专业
  • 泉州建设系统培训中心网站2017做那个网站能致富
  • 网站只有一个首页单页面怎么做排名wordpress 登录注册