コード例 #1
0
 /**
  * 执行函数
  *
  * @access public
  * @return Boolean true or false : next loop ?
  */
 public function execute($loop = true)
 {
     $this->tasks = (array) Queque::instance()->fetch($this->option['n'], $this->option['p']);
     if (2 > $this->option['n']) {
         $this->tasks = array($this->tasks);
     }
     foreach ($this->tasks as $queque) {
         if (!self::lock($queque['id'])) {
             continue;
         }
         $runner = \Myfox\App\Task::create($queque);
         if (!$runner instanceof \Myfox\App\Task) {
             $flag = Queque::FLAG_IGNO;
             $error = sprintf("Undefined task_type named as '%s'", $queque['type']);
             $status = '';
         } else {
             $flag = $runner->execute();
             while (\Myfox\App\Task::WAIT === $flag) {
                 $flag = $runner->wait();
             }
             $flag = isset(self::$codemap[$flag]) ? self::$codemap[$flag] : Queque::FLAG_WAIT;
             $error = $runner->lastError();
             $status = $runner->result();
         }
         self::unlock($queque['id'], $flag, array('last_error' => $error, 'tmp_status' => $status));
     }
     return (bool) $loop;
 }
コード例 #2
0
 public function test_should_static_create_works_fine()
 {
     foreach (array('import', 'delete', 'ready', 'rsplit', 'example') as $type) {
         $object = \Myfox\App\Task::create(array('id' => -1, 'type' => $type, 'status' => '', 'info' => ''));
         $this->assertTrue($object instanceof \Myfox\App\Task);
     }
 }