public function onPurge(QueuePurgeEvent $event) { try { # purge jobs that have been completed or failed # before x date $result = $this->gateway->deleteQuery()->start()->filterByStateFail()->filterByStateFinish()->filterByAddedBefore($event->getBeforeDate())->end()->delete(); $event->setResult($this->gateway->rowsAffected()); } catch (DBALGatewayException $e) { $event->setResult(false); throw new LaterJobException($e->getMessage(), 0, $e); } }
/** * Save the job to the database * * @access public * @return boolean * @param JobTransitionEvent $event */ protected function save(JobTransitionEvent $event) { try { $obj = $event->getTransition(); $job = $event->getJob(); $result = $this->gateway->updateQuery()->start()->addColumn('state_id', $obj->getState())->addColumn('retry_count', $job->getRetryCount())->addColumn('retry_last', $job->getStorage()->getRetryLast())->where()->filterByJob($obj->getJob())->end()->update(); # assign the id to the object $obj->getTransitionId($this->gateway->lastInsertId()); if ($result === false) { throw new LaterJobException('Unable to save transition for Job:: ' . $obj->getJob() . ' It already exists'); } } catch (DBALGatewayException $e) { throw new LaterJobException($e->getMessage(), 0, $e); } }