|
@@ -3,10 +3,20 @@ from typing import List
|
|
|
from app import models, schemas
|
|
|
from sqlalchemy.orm import Session
|
|
|
|
|
|
+from app.utils.cron_utils import *
|
|
|
+
|
|
|
|
|
|
def create_job_info(db: Session, item: schemas.JobInfoCreate):
|
|
|
create_time: int = int(time.time())
|
|
|
- db_item = models.JobInfo(**item.dict(), **{
|
|
|
+ item_dict = item.dict()
|
|
|
+ cron_expression_dict = item_dict.pop('cron_expression')
|
|
|
+ cron_expression = joint_cron_expression(schemas.CronExpression(**cron_expression_dict))
|
|
|
+ cron_select_type = cron_expression_dict["cron_select_type"]
|
|
|
+ item_dict.update({
|
|
|
+ 'cron_select_type': cron_select_type,
|
|
|
+ 'job_cron': cron_expression,
|
|
|
+ })
|
|
|
+ db_item = models.JobInfo(**item_dict, **{
|
|
|
'trigger_status': 0,
|
|
|
'create_time': create_time,
|
|
|
'update_time': create_time,
|
|
@@ -32,6 +42,13 @@ def update_job_info(db: Session, id: int, update_item: schemas.JobInfoUpdate):
|
|
|
if not db_item:
|
|
|
raise Exception('未找到该任务')
|
|
|
update_dict = update_item.dict(exclude_unset=True)
|
|
|
+ cron_expression_dict = update_dict.pop('cron_expression')
|
|
|
+ cron_expression = joint_cron_expression(schemas.CronExpression(**cron_expression_dict))
|
|
|
+ cron_select_type = cron_expression_dict["cron_select_type"]
|
|
|
+ update_dict.update({
|
|
|
+ 'cron_select_type': cron_select_type,
|
|
|
+ 'job_cron': cron_expression,
|
|
|
+ })
|
|
|
for k, v in update_dict.items():
|
|
|
setattr(db_item, k, v)
|
|
|
db_item.update_time = int(time.time())
|