/** * {@inheritdoc} */ public function apply(base $appbox, Application $app) { $sql = 'DELETE FROM Tasks'; $stmt = $app['phraseanet.appbox']->get_connection()->prepare($sql); $stmt->execute(); $stmt->closeCursor(); $sql = 'SELECT task_id, active, crashed, name, class, settings FROM task2'; $stmt = $appbox->get_connection()->prepare($sql); $stmt->execute(); $rs = $stmt->fetchAll(\PDO::FETCH_ASSOC); $stmt->closeCursor(); foreach ($rs as $row) { try { $job = $this->createJob($app, $row['class']); } catch (\RuntimeException $e) { continue; } $settings = simplexml_load_string($row['settings']); $period = $job->getEditor()->getDefaultPeriod(); if ($settings->period) { $period = (int) $settings->period; unset($settings->period); $row['settings'] = $settings->asXML(); } $task = new Task(); $task->setCrashed($row['crashed'])->setJobId($job->getJobId())->setName($row['name'])->setPeriod($period)->setSettings($row['settings'])->setStatus($row['active'] ? Task::STATUS_STARTED : Task::STATUS_STOPPED); $app['EM']->persist($task); } $app['EM']->flush(); }
/** * Reset the number of crashes of the task. * * @param Task $task * * @return Task */ public function resetCrashes(Task $task) { $task->setCrashed(0); $this->om->persist($task); $this->om->flush(); $this->notify(NotifierInterface::MESSAGE_UPDATE); return $task; }
/** * {@inheritDoc} */ public function setCrashed($crashed) { $this->__initializer__ && $this->__initializer__->__invoke($this, 'setCrashed', array($crashed)); return parent::setCrashed($crashed); }