@アレックスが述べたように。値をトリガーにマップする関数を作成しました。
以下の関数は、年、月、日、週、曜日、時、分、秒の順にタプルを返します。いくつかの提案を期待しています。
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;