示例#1
0
 def fetch_job(self):
     '''
     获取超过当前时间戳的需要触发的一批任务
     :return:
     '''
     tasks = TaskModel.query_task_to_trigger()
     if tasks:
         TaskModel.execute(
             'update task set exec_status = 1 where trigger_time<{} and exec_status = 0'
             .format(int(time.time())))
     return tasks
示例#2
0
 def update_trigger(self, job):
     '''
     根据job的类型,计算更新该job的下个触发点
     :param job:
     :return:
     '''
     # logger.warning('update trigger for job: {}'.format(str(job)))
     now = int(time.time())
     if job.get('interval_type') == 1:
         TaskModel.execute(
             'update task set exec_status=0, trigger_time={}, update_at={} where id = {}'
             .format(0, now, job.get('id')))
     elif job.get('interval_type') == 2:
         TaskModel.execute(
             'update task set exec_status=3, update_at={} where id = {}'.
             format(now, job.get('id')))
     elif job.get('interval_type') == 3:
         TaskModel.execute(
             'update task set exec_status=0, trigger_time={}, update_at={} where id = {}'
             .format(now + job.get('time_detail', 0), now, job.get('id')))