摘要:Python有几种定期安排任务的方法。这就是我们将在本文中学到的。
今天构建的大多数应用程序都需要某种派遣机制的方法。InquiryAPI或数据库,不断检查系统的健康状况,存档的日志档案等是常见的示例。Kubernetes和Apachemesos,例如自动望远镜容量(自动尺度)软件,需要检查应用应用程序的状态,为此,他们使用Livices探针定期运行。需要使用业务逻辑将调度任务脱钩,因此我们需要使用脱钩的执行队列,例如REDIS队列。
Python有几种定期安排任务的方法。这是我们将在本文中学到的。我将使用以下方法讨论调度任务:
1.简单的循环
2.简单的循环,但使用线程(简单循环但线程)
3.计划库
4.脓疱
5. RQ调度程序用作脱钩队列
使用一个简单的周期来实现调度任务是毫不费力的。使用无限运行,而定期调用功能可以用于派遣操作,但这不是最好的方法,但是它非常有效。您可以使用Slleep()构建的时间模块以延迟执行。
导入时间
def task():
打印(“工作完成!”)
而1:
任务 ()
时间。睡眠(10)每天在早上9:00安排这些时间表或每个星期三7:45晚上时,事情变得棘手。
这是我第一次想到的解决方案,不要感谢您!此方法的一个问题是,这里的逻辑被阻止了,也就是说,一旦在Python项目中找到该代码,它将被粘在while 1循环,从而阻止执行其他代码。
该线程是计算机科学的概念。该程序由该过程独立执行和管理,可以解决我们的第一种方法的阻塞情况,让我们看看如何解决。
线程启动后,其基础逻辑不能由主线程修改,因此我们可能需要添加资源。该程序可以通过这些资源检查特定方案,并根据它们执行逻辑。
我之前说过,使用时周期来安排似乎很丑陋,计划库可以解决此问题。
如您所见,我们可以无需努力而创建多个调度计划。我尤其喜欢操作的方法和方法链。另一方面,此剪辑具有一个时循环,这意味着代码被阻止,但我相信您已经知道该如何帮助我们解决此问题。
liunx中的crontab实用程序是一种简单的使用且广泛接受的调度解决方案。PythonLibrary Python -Crontab提供了使用python.in python.in crontab中的cli工具的API,_ crontab,_使用unix -cron string格式的时间安排_( * * * * * * *)要描述它,这是一组五个值,这表明应执行操作时,Python-Crontab将Bethe计划在文件中编写crontab,将其转换为编程方法。
Python-Crontab不会自动保存计划,并且需要执行Write()方法来保存计划。有更多功能,我强烈建议您查看他们的文档。
某些任务不能立即执行,因此我们需要根据队列系统(例如lifo或fifo)创建任务队列,并弹出任务。Python-RQ允许我们执行此操作并使用Redis作为代理来排队。作业作为信息存储在信息中,例如
Create_at,Enqueed_at,Origin,Data,Description
排队任务由名为Worker的程序执行。Workers还在REDIS缓存中有一个条目,该条目负责列出任务并更新REDIS中的任务状态。可以在需要时排队,但要安排它们,我们需要RQ-SCEDULER。
RQ Worker(RQ Workter)必须在终端中单独启动或通过Python-RQ运算符开始。一旦触发任务,可以在工作终端中看到它,并且可以在成功和故障场景中使用单独的功能。
还有一些安排图书馆,但是在这里,我讨论了最常见的库。值得一提的是,芹菜的另一个优点是,芹菜的另一个优点是,用户可以在多个代理之间进行选择。我很高兴您能阅读结局。也可以查看其他文章。