Example #1
0
function run($worker, $data)
{
    if ($data == false) {
        return false;
    }
    $task = AbstractTask::createTask(json_decode($data, true));
    return $task->run();
}
Example #2
0
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);
}
Example #3
0
 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);
     }
 }
Example #4
0
 /**
  * 组合成原子任务
  * @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;
 }