コード例 #1
0
ファイル: task.logic.php プロジェクト: YouthAndra/huaitaoo2o
 function run($id = 0)
 {
     $this->setID($id);
     $sql = "SELECT * FROM " . TABLE_PREFIX . 'task' . " WHERE " . ($this->ID ? "id='{$this->ID}'" : "available>'0' AND nextrun<='{$this->timestamp}'") . " order by nextrun LIMIT 1";
     $query = $this->DatabaseHandler->Query($sql);
     if ($task = $query->GetRow()) {
         $this->task = $task;
         $lock = jconf::get('task', 'lock');
         $task['filename'] = str_replace(array('..', '/', '\\'), '', $task['filename']);
         $taskfile = './include/ext/task/' . $task['filename'];
         if ($lock > $this->timestamp - 600) {
             return null;
         } else {
             jconf::set('task', 'lock', time());
         }
         @ignore_user_abort(true);
         $task['filename'] = str_replace(array('..', '/', '\\'), array('', '', ''), $task['filename']);
         $task['minute'] = explode("\t", $task['minute']);
         $this->nextRun($task);
         if (!(include_once $taskfile)) {
             $this->log("计划任务 {$task['name']} 文件 {$taskfile} 已经不存在", E_USER_ERROR, 0);
         } else {
             $log_id = $this->log("执行超时,请检查任务脚本。", E_USER_ERROR, 0);
             list($usec, $sec) = explode(" ", microtime());
             $start = (double) $usec + (double) $sec;
             $TaskItem = new TaskItem();
             $TaskItem->run();
             list($usec, $sec) = explode(" ", microtime());
             $exec_time = (double) $usec + (double) $sec - $start;
             $this->logUpdate($log_id, $TaskItem->log['message'], $TaskItem->log['error'], $exec_time);
         }
         @jconf::set('task', 'lock', 0);
     }
     $this->writeNextRunTime();
 }
コード例 #2
0
	public function modifyPost($request, $response)
	{
		$taskItemId = $request->taskItemId;
		$taskItem = TaskItem::getById($taskItemId);
		DBC::requireTrue($taskItem instanceof TaskItem,"任务项 {$taskItemId} 不存在");
		
		UsecaseClient::getInstance()->modifyTaskItem($taskItem->id,$request->result,$request->bugInfo);
		
		$taskItem =  DAL::get()->find('taskitem', $taskItemId,true);
		
		$preMsg = "{$taskItem->usecase->id} 执行结果:{$taskItem->resultDesc}";
		$response->setRedirect($response->router->urlfor('taskitem/next',array('preTaskItemId'=>$taskItem->id,'preMsg'=>$preMsg)));
	}