/** * * 针对一个任务,调用适当方法进行处理,处理后回写执行结果 * 任务种类 'checkout', 'update', 'delete', 'rsync' * */ public function run($task_id) { $task = \Tasks::find($task_id); if ($task->status != 'created') { return $this->err('供执行的任务必须是初始状态'); } //TODO 检查前置任务pre_task 的状态 if ($task->pre_task && $task->pre->status != 'success') { return $this->err('前置任务尚未完成'); } $task->status = 'execute'; $task->execute_time = date('Y-m-d H:i:s'); $task->save(); $func = '_run' . ucfirst($task->type); $result = $this->{$func}($task); $task->output = $result['output']; $task->status = $result['result'] ? 'success' : 'failed'; $task->save(); }
public static function get_one($id) { $res = Tasks::find($id); return $res; }