python-用apscheduler模块实现定时任务

供稿:hz-xin.com     日期:2025-01-15
Python中,通过apscheduler模块可以轻松实现定时任务。首先,我们需要安装这个模块,它提供了多种调度器,这里以非阻塞式的BackgroundScheduler为例来介绍。

当我们使用date类型的触发器时,如下面的示例,有三种设定日期和时间的方式。值得注意的是,如果指定的日期已过,如第一个例子,由于是默认在0点执行,实际上已错过执行时间,不会运行。而第二个和第三个则在预设的时间点按计划运行。从打印结果中可以看出,即使main函数执行完毕,while循环开始执行,定时任务仍会独立运行,这是非阻塞调度器的特点。相比之下,如果是阻塞式调度,程序会暂停在main函数中,不会执行后续循环。

interval类型的触发器则用于周期性执行,比如每3秒执行一次的任务。在实际操作中,我们可以根据需要调整间隔时间。下面的代码展示了这个用法,但为了简洁,仅演示了3秒执行一次的情况。

最后,cron类型的触发器模仿了Linux中的crontab定时器,提供了更为灵活的时间规则,允许我们根据分钟、小时、日期等进行精确的定时。下面的代码展示了如何使用cron触发器进行定时任务的执行。