|
@@ -1238,7 +1238,7 @@ class SmartSceneView(View):
|
|
|
@param device_type: 设备类型
|
|
|
@param event_type: 事件类型
|
|
|
@param serial_number: 序列号
|
|
|
- @return: task_id, time_dict
|
|
|
+ @return: task_id
|
|
|
"""
|
|
|
task_id = serial_number + '_'
|
|
|
apscheduler_obj = ApschedulerObject(tz)
|
|
@@ -1256,7 +1256,6 @@ class SmartSceneView(View):
|
|
|
task_id += str(time_stamp)
|
|
|
apscheduler_obj.create_date_job(func=cls.pub_mqtt, task_id=task_id, time_stamp=time_stamp,
|
|
|
args=(device_type, event_type, serial_number))
|
|
|
- time_dict = {'time_stamp': time_stamp}
|
|
|
# 周期任务
|
|
|
else:
|
|
|
hour, minute, second, is_next_day = cls.handle_delay_time(minutes, delay_time)
|
|
@@ -1267,8 +1266,7 @@ class SmartSceneView(View):
|
|
|
apscheduler_obj.create_cron_job(func=cls.pub_mqtt, task_id=task_id, day_of_week=weeks,
|
|
|
hour=hour, minute=minute,
|
|
|
args=(device_type, event_type, serial_number))
|
|
|
- time_dict = {'weeks': weeks, 'hour': hour, 'minute': minute, 'second': second}
|
|
|
- return task_id, time_dict
|
|
|
+ return task_id
|
|
|
|
|
|
@staticmethod
|
|
|
def handle_delay_time(minutes, delay_time):
|
|
@@ -1362,10 +1360,10 @@ class SmartSceneView(View):
|
|
|
if scene_status == SCENE_STATUS_OFF:
|
|
|
cls.pause_job(apscheduler_obj, time_task_list)
|
|
|
else:
|
|
|
- time_stamp, task_list = cls.resume_job(apscheduler_obj, time_type, time_task_list)
|
|
|
- if time_stamp and time_task_list:
|
|
|
+ time_stamp = cls.resume_job(apscheduler_obj, time_type, time_task_list)
|
|
|
+ # 返回时间戳,则更新
|
|
|
+ if time_stamp:
|
|
|
scene_data_dict['condition']['time_dict']['time_stamp'] = time_stamp
|
|
|
- scene_data_dict['condition']['task_list'] = task_list
|
|
|
return scene_data_dict
|
|
|
|
|
|
@staticmethod
|
|
@@ -1391,7 +1389,7 @@ class SmartSceneView(View):
|
|
|
@param apscheduler_obj: apscheduler对象
|
|
|
@param time_type: 时间类型: date, cron
|
|
|
@param time_task_list: 定时任务列表
|
|
|
- @return: None, None or time_stamp, time_task_list
|
|
|
+ @return: None or time_stamp
|
|
|
"""
|
|
|
if time_type == 'cron':
|
|
|
for time_task in time_task_list:
|
|
@@ -1401,7 +1399,7 @@ class SmartSceneView(View):
|
|
|
apscheduler_obj.resume_job(task_id)
|
|
|
except Exception:
|
|
|
continue
|
|
|
- return None, None
|
|
|
+ return None
|
|
|
else:
|
|
|
now_time = int(time.time())
|
|
|
time_stamp = time_task_list[0]['time_dict']['time_stamp']
|
|
@@ -1413,7 +1411,7 @@ class SmartSceneView(View):
|
|
|
apscheduler_obj.resume_job(task_id)
|
|
|
except Exception:
|
|
|
continue
|
|
|
- return None, None
|
|
|
+ return None
|
|
|
else:
|
|
|
# 创建新的定时任务,时间+24小时
|
|
|
time_stamp += 24 * 60 * 60
|
|
@@ -1421,12 +1419,12 @@ class SmartSceneView(View):
|
|
|
device_type = time_task['device_type']
|
|
|
event_type = time_task['event_type']
|
|
|
serial_number = time_task['serial_number']
|
|
|
- task_id = serial_number + str(time_stamp)
|
|
|
+ task_id = serial_number + '_' + str(time_stamp)
|
|
|
apscheduler_obj.create_date_job(func=cls.pub_mqtt, task_id=task_id, time_stamp=time_stamp,
|
|
|
args=(device_type, event_type, serial_number))
|
|
|
# 更新task_id
|
|
|
- time_task[task_id] = task_id
|
|
|
- return time_stamp, time_task_list
|
|
|
+ time_task['task_id'] = task_id
|
|
|
+ return time_stamp
|
|
|
|
|
|
|
|
|
#
|