打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
在使用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定时任务的问题,文中针对该问题,给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。

最后感谢粉丝【鱼开溜🦈】提问,感谢【dcpeng】给出的思路和代码解析,感谢【冯诚】等人参与学习交流。

有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。

------------------- End -------------------

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
python不要再使用while死循环,使用定时器代替效果更佳!
Python实现定时任务的利器apscheduler
定时任务 apscheduler
花10分钟让你彻底学会Python3定时任务框架apscheduler
Python使用APScheduler实现定时任务
Python学习教程:定时库APScheduler的原理及用法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服