Python中的时间表

Schedule是Python中的轻量级进程调度程序库,用于调度任务以指定的时间间隔定期运行。

我们可以使用人性友好的语法调用函数或任何可调用对象,以自动执行发送电子邮件、设置提醒、定期获取货币价格或比特币等任务。

在Python中安装日程库

我们必须先使用以下命令安装这个包。

pip install schedule

要调度作业,我们使用以下语法。

语法:

Schedule.every(interval).[timeframe].do(function)

产品参数:

  • interval可以是任何整数。
  • timeframe可以是秒、分钟、小时、天,甚至是工作日的名称,如星期一、星期二等。
  • do()方法将函数名作为参数进行调度。

用秒作为间隔定期调度作业

在下面的代码中,我们有一个名为task的方法,计划在每五秒后周期性运行一次。我们将时间间隔(在我们的例子中是5秒)定义为every()方法的参数。

我们指定要调度的函数作为do()方法的参数,一旦机器到达指定的时间,该方法将自动运行。最后,我们在run_pending()循环中执行while函数,以连续运行调度的作业。

在输出中,消息Task is running按照编程每隔5秒显示一次。

示例代码:

import schedule as s
import time as t
def task():
    print("Task is running")
s.every(5).seconds.do(task)
while True:
    s.run_pending()
    t.sleep(1)

输出:

Task is running
Task is running
Task is running
Task is running
Task is running

用分钟、小时和天作为时间间隔定期安排作业

如果我们想将间隔更改为任何指定的分钟、小时或星期几,我们可以这样编写代码。输出将根据设置的时间保持显示消息。

示例代码:

import schedule as s
import time as t
def task():
    print("Task is running")
s.every(5).minutes.do(task)
s.every(10).hours.do(task)
s.every().monday.do(task)
while True:
    s.run_pending()
    t.sleep(1)

输出:

Task is running
Task is running
Task is running

使用时间 HH:MM 设置为间隔格式以定期安排作业

我们也可以以HH:MM:SS格式设置一个特定的时间作为函数的参数。消息将在每个指定的时间间隔后定期显示。

示例代码:

import schedule as s
import time as t
def task():
    print("Task is running")
s.every().day.at("04:21").do(task)
s.every().monday.at("12:00").do(task)
while True:
    s.run_pending()
    t.sleep(1)

输出:

Task is running

用函数装饰器调度作业

函数装饰器接受一个函数作为输入,添加一些功能,并返回一个函数。我们将在这里使用@repeat来调度任务函数。

示例代码:

from schedule import every, run_pending, repeat
import time as t
@repeat(every(5).seconds)
def task():
    print("Task is running")
while True:
    run_pending()
    t.sleep(1)

输出:

Task is running
Task is running
Task is running

立即运行作业

我们可以在作业运行后使用CancelJob和schedule实例取消它,从而立即运行作业。

示例代码:

import schedule as s
import time as t
def task():
    print("Task is running")
    return s.CancelJob
s.every(5).seconds.do(task)
while True:
    s.run_pending()
    t.sleep(1)

输出:

Task is running

取消所有作业

我们可以使用调度器实例的clear()方法取消调度器中的所有作业。在这里,我们使用了get_jobs()方法来打印调度器中的调度作业。

示例代码:

import schedule as s
import time as t
#Python小白学习交流群:711312441
def task():
    print("Task is running")
s.every(5).seconds.do(task)
print("Jobs:", s.get_jobs())
s.clear()
print("Jobs:", s.get_jobs())

输出:

Jobs: [Every 5 seconds do task() (last run: [never], next run: 2022-04-08 16:59:37)]
Jobs: []

猜你喜欢

转载自blog.csdn.net/qdPython/article/details/132121257