在使用apscheduler 的BackgroundScheduler调度时结果出不来?

开发 后端
这篇文章主要盘点了一个Python定时任务的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

大家好,我是皮皮。

一、前言

前几天在Python白银交流群【鱼开溜🦈】问了一个Python定时任务的问题,提问截图如下:

下面是他的代码:

from apscheduler.schedulers.background import BackgroundScheduler
scheduler = BackgroundScheduler(timezone='Asia/Shanghai')
def job_func1():
print("1")
scheduler.add_job(job_func1, id='001', name='test1', trigger='interval', seconds=1)
def main():
scheduler.start()
scheduler.print_jobs()
if name == 'main':
main()

二、实现过程

这里需要先安装apscheduler库,不然会报错。

这里【dcpeng】给了一个解决办法,把那个interval参数去除就好了。

不过没那个参数,实现不了定时功能。

不过也不要慌,这里有相关参数说明。

所以需要定时任务的话,定时任务器的参数可以参考下面进行设置。

scheduler.add_job(my_task, trigger="date",
run_date=date(2019, 6, 10),
args=("mashiro", 17),
kwargs={"gender": "女"})
scheduler.add_job(my_task,
trigger="date",
run_date=datetime(2019, 6, 9, 17, 14, 4),
args=("mashiro", 17),
kwargs={"gender": "女"})
scheduler.add_job(my_task,
trigger="date",
run_date="2019-6-9 17:14:05",
args=("mashiro", 17),
kwargs={"gender": "女"})

未指定日期,则会立即执行

scheduler.add_job(my_task,
args=("mashiro", 17),
kwargs={"gender": "女"})

如此一来,问题就得到解决了。

粉丝想要实现的功能是,类似于linux的crontab,想要在特定时间范围或者时间间隔下跑某些函数,查到功能比较强大的apscheduler,有两种方式实现我需要的功能:①是有进程阻塞的BlockingSchedul ②是无进程阻塞的BackgroundScheduler。差别在于时间差,粉丝想的是如果有多条进程需要同时跑,要么异步,要么用无进程阻塞的,故选了方式②,提供的代码如下。

可以看到这里,针对参数做了修改,之前写法是trigger=interval,这里把时间间隔放到前面,在这个时间范围内,1秒执行一次。并在主程序加上死循环,一直处于挂起状态循环,类似于只用Scheduler的,可以得到如下结果:

三、总结

大家好,我是皮皮。这篇文章主要盘点了一个Python定时任务的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

责任编辑:庞桂玉 来源: Python共享之家
相关推荐

2020-04-01 16:10:02

PythonAPScheduler调度

2015-11-16 14:47:49

Windows 10TH2更新

2024-03-21 07:08:53

AIntervalCronPython

2021-01-14 10:03:38

大数据数据业务数据集

2021-08-11 10:50:35

AirFlow MaxCompute阿里云

2011-08-17 09:06:07

Windows7声卡驱动

2023-12-19 08:09:06

Python定时任务Cron表达式

2024-03-12 11:39:30

Python开发

2014-11-24 13:30:47

苹果设计

2021-05-13 12:00:51

cron调度任务系统运维

2019-10-30 14:44:41

Prometheus开源监控系统

2021-01-22 05:55:12

GitAngularJStype

2020-03-03 08:29:07

时延敏感网络TSN网络

2011-04-07 09:33:22

2011-03-25 13:26:45

Cacti

2009-04-22 08:54:25

2014-11-03 15:28:24

2010-02-06 09:41:10

CentOS bond

2009-07-08 17:42:33

JDBC存储过程

2021-10-14 17:11:52

云计算谷歌云云应用
点赞
收藏

51CTO技术栈公众号