图片来源:pixabay.com
为什么要定时启动任务?人生苦短,我用Python
自己列了不少Flag,比如,规律地做这些事:「Feedly订阅」、「Workflowy清单」以及「Anki问答题」等。
有人说:「聪明人的理性大脑,往往在得到提醒时,才会上线。」
我的大脑老忘事,而且,通知对我轮番轰炸,也没辙,还是整不动。
我想:Python定时启动某些任务?
这些任务,都包含必需动作:点击浏览器图标,输入网址。再次点击图标……如此,循环往复。
也许市面上,已经有了封装好功能的集成软件,我没找。根据经验,这样容易路径曲折:在页面间跳转、搜索,折腾一阵子下来,加了很多功能,但是用不着。
这一次,我打算,写Python脚本,响应号召:「Automate the Boring Stuff with Python」。用Python 自动化无聊的事情。
作为初级代码学习者,除了单纯涨知识以外,学以致用才是正事。
这样,既可复习Python知识,又可省心省力,一举两得。
Python的Apscheduler框架是什么?
来自彩云小译的译文:
Advanced Python Scheduler (APScheduler)是一个 Python 库,它允许您安排稍后执行的 Python 代码,可以只执行一次,也可以定期执行。 你可以随心所欲地增加新工作或者删除旧工作。 如果将作业存储在数据库中,它们也会在调度程序重新启动后存活并维护其状态。 当调度程序重新启动时,它将运行它在关闭时应该运行的所有作业。
这就是一个调度指挥官,它在电脑上做安排:啥时候哪个软件需要打开。
高手可以直接「读文档(RFTD)」:https://apscheduler.readthedocs.io/en/stable/
基于Apscheduler的定时任务脚本怎么写?
调度器-导入所需的包
|
|
自定义函数-需要调用的程序任务
我自定义tick函数,Notifier
弹出提醒框,webbrowser
用默认浏览器打开某个网址。
|
|
自定义 lanuch_mac_app
函数,用subprocess
打开 Mac系统的 Applications文件夹的应用,APP 参数填写应用名,比如「Anki」。
|
|
调度器-每天定时任务(cron)
scheduler
的add_job
添加调度任务,执行tick
函数,区别于隔一段时间调度一次的任务,cron
是定时任务。
|
|
调度器-启动Mac系统的程序
scheduler
的add_job
添加调度任务,执行lanuch_mac_app
函数,kwargs
给出关键词参数,这里是text
的字符串「Recite Anki」。
|
|
消息提醒-推送至微信
使用ServerChan实现文本消息,自动推送至移动端微信。
- Server酱官方网站:sc.ftqq.com
- 使用Github账号登录:sc.ftqq.com/?c=github&a=login
- 绑定微信账号:sc.ftqq.com/?c=wechat&a=bind
添加下列代码:
|
|
调度器脚本
|
|
在终端运行此脚本,搞掂。
对于重复机械的任务,无需记忆,无需点击,每天定时启动程序。
我们的口号:撸起袖子,加油干。
参考资料
花10分钟让你彻底学会Python定时任务框架apscheduler
changelog
2020/2/6 2:18 PM init
2020/2/9 11:14 AM revised
2020/2/10 9:59 PM add wechat push