gpt4 book ai didi

python - 从 cron 表达式创建 apscheduler 作业触发器

转载 作者:行者123 更新时间:2023-11-30 23:17:18 31 4
gpt4 key购买 nike

我正在尝试使用 python 中的 cron 表达式运行一些计划作业。我是Python新手,我已经使用Java中的Quartz Scheduler来实现几乎相同的事情。现在,我正在尝试在 python 中使用 apscheduler。我知道可以使用

来做到这一点

crontrig = CronTrigger(分钟='*',秒='*');

但是,我正在使用 cron 表达式(例如“0/5 * * * * *”),我想知道是否有任何东西可以直接解析表达式并生成 CronTrigger。

最佳答案

正如@Alex 提到的。我创建了一个函数来将值映射到触发器。

下面的函数将按顺序返回一个元组年、月、日、周、星期几、小时、分钟、秒。期待一些建议。

def evaluate(self, expression):
'''
order of values
year, month, day, week, day_of_week, hour, minute, second, start_date, end_date, timezone
'''
splitValues = expression.split();
for i in range(0,8):
if (i == 0):
if (splitValues[0] == '?'):
year = None;
else:
year = splitValues[0];
if (i == 1):
if (splitValues[1] == '?'):
month = None;
else:
month = splitValues[1];
if (i == 2):
if (splitValues[2] == '?'):
day = None;
else:
day = splitValues[2];
if (i == 3):
if (splitValues[3] == '?'):
week = None;
else:
week = splitValues[3];
if (i == 4):
if (splitValues[4] == '?'):
day_of_week = None;
else:
day_of_week = splitValues[4];
if (i == 5):
if (splitValues[5] == '?'):
hour = None;
else:
hour = splitValues[5];
if (i == 6):
if (splitValues[6] == '?'):
minute = None;
else:
minute = splitValues[6];
if (i == 7):
if (splitValues[7] == '?'):
second = None;
else:
second = splitValues[7];
return year, month, day, week, day_of_week, hour, minute, second;

我使用此表达式创建了一个 createTrigger 函数

def getTrigger(self,cronExpression): 
year, month, day, week, day_of_week, hour, minute, second = evaluate(cronExpression);
trigger = CronTrigger(year, month, day, week, day_of_week, hour, minute, second)
return trigger;

关于python - 从 cron 表达式创建 apscheduler 作业触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27377908/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com