コード例 #1
0
 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);
     }
 }
コード例 #2
0
 /**
  *  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);
     }
 }