任务调度器
class automation.TaskScheduler()
任务调度控制器。 注意时区始终为UTC
创建一个任务调度器服务
-
参数
-
sync_frequency_minutes (
float
) – 每X分钟同步任务调度器配置。 允许通过编辑任务配置对象在运行时更改调度器 -
force_create_task_name (
Optional
[str
]) – 可选,强制创建任务调度器服务,即使主任务初始化已经存在。 -
force_create_task_project (
Optional
[str
]) – 可选,强制创建任务调度器服务,即使主任务初始化已经存在。
-
添加任务
add_task(schedule_task_id=None, schedule_function=None, queue=None, name=None, target_project=None, minute=None, hour=None, day=None, weekdays=None, month=None, year=None, limit_execution_time=None, single_instance=False, recurring=True, execute_immediately=False, reuse_task=False, task_parameters=None, task_overrides=None)
为预先存在的任务创建类似cron作业的调度。 请注意,建议为调度条目提供一个描述性的唯一名称, 如果未提供,则会随机生成一个名称。
当仅指定timespec参数时,它们定义了任务启动之间的时间(参见年和周日的例外情况)。当指定多个timespec参数时,代表最长持续时间的参数定义了任务启动之间的时间,而较短的timespec参数定义了具体的时间。
示例:
每15分钟启动一次
add_task(schedule_task_id=’1235’, queue=’default’, minute=15)
每1小时启动一次
add_task(schedule_task_id=’1235’, queue=’default’, hour=1)
每小时的第30分钟启动一次(例如1:30,2:30等)。
add_task(schedule_task_id=’1235’, queue=’default’, hour=1, minute=30)
每天22:30(晚上10:30)启动
add_task(schedule_task_id=’1235’, queue=’default’, minute=30, hour=22, day=1)
每隔一天在7:30(上午7:30)启动
add_task(schedule_task_id=’1235’, queue=’default’, minute=30, hour=7, day=2)
每周六上午8:30启动(注意 day=0)
add_task(schedule_task_id=’1235’, queue=’default’, minute=30, hour=8, day=0, weekdays=[‘saturday’])
每2小时在周末周六/周日启动(注意未传递日期)
add_task(schedule_task_id=’1235’, queue=’default’, hour=2, weekdays=[‘saturday’, ‘sunday’])
每月5日启动一次
add_task(schedule_task_id=’1235’, queue=’default’, month=1, day=5)
每年3月4日启动一次
add_task(schedule_task_id=’1235’, queue=’default’, year=1, month=3, day=4)
-
参数
-
schedule_task_id (
Union
[str
,Task
,None
]) – 要克隆并安排执行的任务的ID -
schedule_function (
Optional
[Callable
]) – 可选,不提供要调度的任务ID,而是提供一个要调用的函数。请注意,该函数是从调度器上下文中调用的(即在调度器所在的同一台机器上运行) -
queue (
Optional
[str
]) – 将任务放入的队列的名称或ID(即调度) -
name (
Optional
[str
]) – 定时任务的名称或描述(如果提供,应该是唯一的,否则随机生成) -
target_project (
Optional
[str
]) – 指定目标项目以放置克隆的预定任务。 -
minute (
Optional
[int
]) – 任务启动之间的时间(以分钟为单位)。如果与小时、日、月、和/或年一起指定,它定义了小时中的分钟。 -
hour (
Optional
[int
]) – 任务启动之间的时间(以小时为单位)。如果与 day、month 和 / 或 year 一起指定,它定义了每天的小时。 -
day (
Optional
[int
]) – 任务执行之间的时间(以天为单位)。如果与月份和/或年份一起指定,它定义了月份中的某一天 -
weekdays (
Optional
[List
[str
]]) – 每周启动任务的日期(接受的输入:'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday') -
month (
Optional
[int
]) – 任务启动之间的时间(以月为单位)。如果与年份一起指定,则定义特定的月份 -
year (
Optional
[int
]) – 如果值大于等于当前年份,则为特定年份。如果值小于等于100,则为任务启动之间的时间(以年为单位) -
limit_execution_time (
Optional
[float
]) – 限制特定作业的执行时间(以小时为单位)。 -
single_instance (
bool
) – 如果为True,如果前一个实例仍在运行,则不启动任务作业 (跳过直到下一个计划时间段)。默认值为False。 -
recurring (
bool
) – 如果为False,则只启动任务一次(默认:True,重复) -
execute_immediately (
bool
) – 如果为True,则立即安排任务执行,然后根据时间计划参数进行重复。默认值为False。 -
reuse_task (
bool
) – 如果为True,则每次重新入队相同的任务(即不克隆它),默认为False。 -
task_parameters (
Optional
[dict
]) – 执行任务的配置参数。 例如:{'Args/batch': '12'}
注意:当 reuse_task=True 时不可用 -
task_overrides (
Optional
[dict
]) – 更改任务定义。 例如{'script.version_num': None, 'script.branch': 'main'}
注意:当 reuse_task=True 时不可用
-
-
返回类型
bool
-
返回
如果作业成功添加到调度列表中,则为True
获取计划任务
get_scheduled_tasks()
返回当前计划的作业集
-
返回类型
List
[ScheduleJob
] -
返回
ScheduleJob实例列表
remove_task
remove_task(task_id)
从计划任务列表中移除一个任务ID。
-
参数
task_id (
Union
[str
,Task
,Callable
]) – 要移除的任务或任务ID -
返回类型
bool
-
返回
如果在计划任务列表中找到任务ID并将其移除,则返回True。
开始
start()
启动任务调度器循环(注意此函数不会返回)
-
返回类型
None
远程启动
start_remotely(queue='services')
启动任务调度器循环(注意此函数不会返回)
-
参数
queue (
str
) – 运行调度程序的远程队列,默认为‘services’队列。 -
返回类型
None