/** * Modify task in queue * @param Task $task * @param bool $need_commit Transaction commit required * @return bool */ public function modify_task(Task $task, $need_commit = false) { if (is_null($this->file_handler)) { $this->lock_file(); } $xml_dom = $this->get_xml_dom(); $task_xml = $xml_dom->xpath("//" . self::TASK_XML . "[@" . TaskConst::UNIQID . "='" . $task->get_uniqid() . "']"); $task_xml = $task_xml[0]; foreach ($task->get($this->index_row) as $item_name => $item_value) { $task_xml[$item_name] = $item_value; } $this->save_task($task); $this->save_xml_dom($xml_dom); $this->release_file(); return $this; }