feat: implement dynamic quarterly and semi-annual scheduling based on configurable start months
This commit is contained in:
parent
640087ec86
commit
03f4814bcc
27
gui_app.py
27
gui_app.py
@ -212,8 +212,19 @@ def register_scheduler_job(info):
|
|||||||
day_val = monthly_day
|
day_val = monthly_day
|
||||||
if str(day_val).isdigit():
|
if str(day_val).isdigit():
|
||||||
day_val = max(1, min(28, int(day_val)))
|
day_val = max(1, min(28, int(day_val)))
|
||||||
|
|
||||||
|
start_month = info.get('schedule_start_month')
|
||||||
|
if not start_month:
|
||||||
|
start_month = datetime.now().month
|
||||||
|
info['schedule_start_month'] = start_month
|
||||||
|
try:
|
||||||
|
save_jobs_db()
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
|
||||||
|
months = sorted([(start_month + i * 3 - 1) % 12 + 1 for i in range(4)])
|
||||||
trigger = CronTrigger(
|
trigger = CronTrigger(
|
||||||
month='*/3',
|
month=",".join(map(str, months)),
|
||||||
day=day_val,
|
day=day_val,
|
||||||
hour=int(hour), minute=int(minute)
|
hour=int(hour), minute=int(minute)
|
||||||
)
|
)
|
||||||
@ -222,8 +233,19 @@ def register_scheduler_job(info):
|
|||||||
day_val = monthly_day
|
day_val = monthly_day
|
||||||
if str(day_val).isdigit():
|
if str(day_val).isdigit():
|
||||||
day_val = max(1, min(28, int(day_val)))
|
day_val = max(1, min(28, int(day_val)))
|
||||||
|
|
||||||
|
start_month = info.get('schedule_start_month')
|
||||||
|
if not start_month:
|
||||||
|
start_month = datetime.now().month
|
||||||
|
info['schedule_start_month'] = start_month
|
||||||
|
try:
|
||||||
|
save_jobs_db()
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
|
||||||
|
months = sorted([(start_month + i * 6 - 1) % 12 + 1 for i in range(2)])
|
||||||
trigger = CronTrigger(
|
trigger = CronTrigger(
|
||||||
month='*/6',
|
month=",".join(map(str, months)),
|
||||||
day=day_val,
|
day=day_val,
|
||||||
hour=int(hour), minute=int(minute)
|
hour=int(hour), minute=int(minute)
|
||||||
)
|
)
|
||||||
@ -1444,6 +1466,7 @@ def edit_job(jobid):
|
|||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
info['schedule_id'] = None
|
info['schedule_id'] = None
|
||||||
|
info['schedule_start_month'] = None
|
||||||
|
|
||||||
# Update job config
|
# Update job config
|
||||||
info['label'] = label
|
info['label'] = label
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user