function run($worker, $data) { if ($data == false) { return false; } $task = AbstractTask::createTask(json_decode($data, true)); return $task->run(); }
function run($worker, $data) { //读取定时任务 $currentTime = time(); $data = Redis::queueRedis()->lPop('tarth-timer-' . $worker->tarthTimerLastTime); if ($data == false) { //在不超过当前时间情况下,获取下一秒的数据 if ($worker->tarthTimerLastTime < $currentTime) { $worker->tarthTimerLastTime++; } return false; } $task = AbstractTask::createTask(json_decode($data, true)); return $task->push(true); }
protected function _processTask() { try { if ($this->isAtom) { foreach ($this->tasks as $task) { if (is_array($task)) { $task = AbstractTask::createTask($task); } $task->run(); } } else { foreach ($this->tasks as $task) { if (is_array($task)) { $task = AbstractTask::createTask($task); } $task->push(); } } } catch (Exception $e) { Log::logger()->addError($e->getMessage); } }
/** * 组合成原子任务 * @return object 任务对象 */ private static function _toMultiTask($isAtom = false) { $tid = AbstractTask::newId(); foreach (self::$_tasks as $task) { $task->parentId = $tid; } $multiInfo = array('tasks' => self::$_tasks, 'id' => $tid, 'isAtom' => $isAtom, 'name' => 'Multi'); self::$_atomTask = self::_createTask($multiInfo); return self::$_atomTask; }