/** * 执行函数 * * @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; }
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); } }