【问题标题】:Python Apscheduler Loop Without Overlapping Tasks没有重叠任务的 Python Apscheduler 循环
【发布时间】:2022-01-08 11:14:21
【问题描述】:

我正在尝试与 Apscheduler 合作以按顺序运行 3 个任务,但我在弄清楚如何在整个周期完成之前防止任务重叠时遇到了挑战。

import time
from apscheduler.schedulers.blocking import BlockingScheduler

def my_interval_job1():
    t = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
    print ("interval job 1 --- {}".format(t))

def my_interval_job2():
    t = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
    print ("interval job 2 --- {}".format(t))

def my_interval_job3():
    t = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
    print ("interval job 3 --- {}".format(t))

def myScheduler():
    scheduler = BlockingScheduler({'apscheduler.timezone': 'UTC'})

    scheduler.add_job(my_interval_job1, 'interval', id='my_job_id1', seconds=5)
    scheduler.add_job(my_interval_job2, 'interval', id='my_job_id2', seconds=10)
    scheduler.add_job(my_interval_job3, 'interval', id='my_job_id3', seconds=15)

    try:
        scheduler.start()
    except KeyboardInterrupt:
        scheduler.shutdown()

myScheduler()

我的输出是这样的:

interval job 1 --- 2022-01-08 13:59:43
interval job 1 --- 2022-01-08 13:59:48
interval job 2 --- 2022-01-08 13:59:48
interval job 1 --- 2022-01-08 13:59:53
interval job 3 --- 2022-01-08 13:59:53
interval job 1 --- 2022-01-08 13:59:58
interval job 2 --- 2022-01-08 13:59:58
interval job 1 --- 2022-01-08 14:00:03
interval job 1 --- 2022-01-08 14:00:08
interval job 2 --- 2022-01-08 14:00:08
interval job 3 --- 2022-01-08 14:00:08
interval job 1 --- 2022-01-08 14:00:13

如何有效地循环三个任务并获得如下输出:

------ Sleep (5secs)------    
interval job 1 --- 2022-01-08 13:59:43
------ Sleep (10secs)------
interval job 2 --- 2022-01-08 13:59:53
------ Sleep (15secs)------
interval job 3 --- 2022-01-08 14:00:08

------ Sleep (30secs)------

------ Sleep (5secs)------
interval job 1 --- 2022-01-08 14:00:43
------ Sleep (10secs)------
interval job 2 --- 2022-01-08 14:00:53
------ Sleep (15secs)------
interval job 3 --- 2022-01-08 14:01:08

等等……

【问题讨论】:

  • 如果您需要按顺序运行它们,为什么不将它们放在一个计划的作业中?
  • @AlexGrönholm 一些代码说明您的意思将不胜感激。

标签: python loops cron-task apscheduler


【解决方案1】:

您可以在运行时通过 RAM 检查其他程序。您可以查看内存映射。也许这不是您要寻找的答案,但如果我是您,我会使用此方法。

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-26
  • 1970-01-01
  • 2015-04-23
  • 1970-01-01
  • 2015-06-12
  • 2019-09-22
  • 1970-01-01
相关资源
最近更新 更多