python exe打包后无法执行定时任务(apscheduler框架)
问题:在代码中使用了apscheduler框架,
import tzlocal
scheduler = BackgroundScheduler(executors=executors, job_defaults=job_defaults,timezone=str(tzlocal.get_localzone())) scheduler.add_job(go_, 'cron', hour=5, minute='30', id='Update_one') scheduler.add_job(go_, 'cron', hour=12,minute='30', id='Update_two') scheduler.add_job(go_, 'cron', hour=19, id='Update_three')
使用pyinstaller 打包之后,到时间了无法启动定时任务。
在此之前也遇到了PEP495的问题。
查阅了一些文章和资料
可参考下方链接:
https://github.com/agronholm/apscheduler/discussions/570
(回到无法启动定时任务的问题上。。)
设置cron类型的任务,在打包后,系统无法识别cron关键字,具体原因未知。(真的未知,没有搜到有用的文章和参考资料。。)
所以换模块吧,或者选择其他方式部署,不使用打包这种方式(打包后的确会出现奇奇怪怪的问题,还是云服务器部署吧。。。。最起码有个python的环境来跑代码,特殊情况下可以考虑免安装版的python)
def Timer(): schedule.every().day.at("05:30").do(go_) schedule.every().day.at("12:30").do(go_) schedule.every().day.at("19:00").do(go_) schedule.every().day.at("16:25").do(go_) while True: schedule.run_pending() time.sleep(5) Timer()
import schedule
然后我就选择了这个模块,打包后使用正常。
真的,不要再选择打包成exe了。。。。。。。。。
吐槽一下前领导真的很傻逼。什么服务都要搞成exe。。。。
直接flask服务不好吗,一个云服务器都搞不来,写个锤子代码。。。
本文来自博客园,作者:黑山老道,转载请注明原文链接:https://www.cnblogs.com/meipu/p/16745321.html