【问题标题】:How to get status of job using Scheduler?如何使用调度程序获取作业状态?
【发布时间】:2023-01-10 06:59:58
【问题描述】:

我有一个在 Scheduler 库上运行的预定作业,我想从 python 获取它的状态 ("Success", "Failed") 但我找不到关于如何获取状态的文档。

让我们以下面的代码为例来使用调度程序:

import datetime as dt
import time

from scheduler import Scheduler

import scheduler.trigger as trigger

def foo():

    print("foo")

schedule = Scheduler()
schedule.minutely(dt.time(second=15), foo)
while True:  

    schedule.exec_jobs()

    time.sleep(1)

我只能打印调度程序,但我需要打印执行状态,这可能吗?

>>> print(schedule)  
max_exec=inf, tzinfo=None, priority_function=linear_priority_function, #jobs=9

type     function         due at                 due in      attempts weight
-------- ---------------- ------------------- --------- ------------- ------
MINUTELY foo(..)          2022-03-30 00:37:15   0:00:14         0/inf      1

请指教

【问题讨论】:

  • 如果您认为此功能缺失,如果您在 GitLab 上的project page 上打开一个问题,我将很高兴。
  • @jpotyka 当然可以,谢谢!另外,如果可能的话,我想借此机会询问库中的另一个功能。是否有可能获得已执行作业的最后日期时间?我可以在您提供的文档中找到 datetime,这是为了获取计划执行的日期时间对象,但我想知道是否有一个用于过去执行作业的日期时间对象?谢谢

标签: python scheduler status


【解决方案1】:

作业本身没有(“成功”、“失败”)之类的状态消息,因为作业不知道预定函数中的逻辑是否“成功”。 因此,用户必须自己对逻辑进行编程,无论执行是否按预期进行。 如果你想知道作业是否被执行,不管结果如何,你可以查看执行次数。 为此,作业具有属性 attemptsmax_attemptshas_attempts_remainingHere 你可以找到文档页面。 也许这个example 也能帮到你。

披露:我是图书馆的作者之一。

【讨论】:

    最近更新 更多