像Python中的Schedular一样的Cron

本教程将解释类似于Linux中的cron job的任务调度。首先,我们将看一下schedule 模块,在进程中调度我们的作业。

Python中的cronscheduler 模块

Python 为我们提供了几个包,使我们能够自动安排任务。这些包包括scheduletime

cron 是用来调度和自动执行我们的任务的。例如,在一个特定的时间间隔之后,一个特定的工作自动开始执行。

我们经常需要定期执行许多任务,而不需要人工干预。我们可以通过使用任务调度来实现这一点。

调度经常帮助和促进我们管理存储在数据库中的数据。它还允许我们根据需要定期获取我们的数据。

Python中的schedule 模块是一个复杂的调度模块,它可以根据配置来调度我们的任务运行。

cron 是一个基于时间的调度器。它帮助我们安排那些必须定期执行的工作。crontab 文件,是Linuxcron 工具的一部分,包含了计划任务的列表。

要在cron 中安排我们的任务,我们可以使用Bash命令crontab -e 或Python的python-crontab 模块直接编辑这个文件。但是,我们不能在Windows操作系统中使用这些调度方案。

schedule 是一个根据你的系统的时间间隔来工作的库。它作为一个进程内调度,几乎可以在任何操作系统上工作。

它帮助我们在不同的时间间隔安排某些任务,比如一天或一周中的特定时间。因此,让我们开始创建一个新的python项目。

使用schedule 模块安排工作

按照下面的说明,创建一个新的Python项目:

  • 第一步是安装Anaconda提示。
  • 然后在提示屏幕上输入Jupyter notebook。

    像Python中的Schedular一样的Cron

  • 你会在浏览器上看到Jupyter notebook的home 页面。

    像Python中的Schedular一样的Cron

  • 点击New ,然后制作一个Python 3 文件。

    像Python中的Schedular一样的Cron

  • Python文件将显示如下。

    像Python中的Schedular一样的Cron

  • 在使用schedule 模块的任何功能之前,我们需要先安装schedule 模块。
    pip install schedule
    
  • 在导入所需的模块后,让我们看一下创建和schedule 一个作业的代码。
    import schedule
    import time
    def job():
       print("Reading time...")
    def coding():
       print("Programming time...")
    def playing():
       print("Playing time...")
    # Time
    schedule.every(5).seconds.do(job)
    schedule.every(2).minutes.do(coding)
    schedule.every().day.at("10:57").do(playing)
    while True:
       schedule.run_pending()
       time.sleep(1)
    

    这段代码中定义了三个不同的作业。第一个工作,reading time ,每隔5 秒重复一次,第二个工作,coding ,将每隔2 分钟重复一次,最后一个工作将在特定时间出现时重复。

    while 循环中的Schedule.run_pending() 函数检查是否有任何预定的工作等待运行。当执行时,函数time.sleep(1) ,将使schedule ,检查其待办任务的时间推迟一秒。

    输出:

    像Python中的Schedular一样的Cron

    我们也可以要求调度器在小时和分钟后执行一个特定的工作。例如,schedule.every(5).hours.do(job) 语句将在每five 小时后重复工作。