Exemplo n.º 1
0
 public function __invoke($params)
 {
     try {
         $persistenceId = isset($params[0]) ? $params[0] : 'default';
         $persistence = \common_persistence_Manager::getPersistence($persistenceId);
     } catch (\common_Exception $e) {
         $report = new Report(Report::TYPE_INFO, __('Usage: InitRdsQueue PERSISTENCE_ID'));
         $report->add(new Report(Report::TYPE_ERROR, __('Persistence "%s" could not be loaded', $persistenceId)));
         return $report;
     }
     $schemaManager = $persistence->getDriver()->getSchemaManager();
     $schema = $schemaManager->createSchema();
     $fromSchema = clone $schema;
     try {
         $queueTable = $schema->createtable(RdsQueue::QUEUE_TABLE_NAME);
         $queueTable->addOption('engine', 'MyISAM');
         $queueTable->addColumn(RdsQueue::QUEUE_ID, "string", array("notnull" => true, "length" => 255));
         $queueTable->addColumn(RdsQueue::QUEUE_STATUS, "string", array("notnull" => true, "length" => 50));
         $queueTable->addColumn(RdsQueue::QUEUE_ADDED, "string", array("notnull" => true));
         $queueTable->addColumn(RdsQueue::QUEUE_UPDATED, "string", array("notnull" => true));
         $queueTable->addColumn(RdsQueue::QUEUE_OWNER, "string", array("notnull" => false, "length" => 255));
         $queueTable->addColumn(RdsQueue::QUEUE_TASK, "string", array("notnull" => true, "length" => 4000));
         $queueTable->addColumn(RdsQueue::QUEUE_REPORT, "text", array("default" => null, "notnull" => false));
         $queueTable->setPrimaryKey(array(RdsQueue::QUEUE_ID));
         $queries = $persistence->getPlatform()->getMigrateSchemaSql($fromSchema, $schema);
         foreach ($queries as $query) {
             $persistence->exec($query);
         }
     } catch (SchemaException $e) {
         \common_Logger::i('Database Schema already up to date.');
     }
     $queue = new RdsQueue(array(RdsQueue::OPTION_PERSISTENCE => $persistenceId));
     $queue->setServiceLocator($this->getServiceLocator());
     $this->getServiceLocator()->register(Queue::CONFIG_ID, $queue);
     return new \common_report_Report(\common_report_Report::TYPE_SUCCESS, __('Setup rds queue successfully using persistence "%s"', $persistenceId));
 }
Exemplo n.º 2
0
 /**
  * @return RdsQueue
  */
 protected function getInstance()
 {
     $serviceManager = ServiceManager::getServiceManager();
     try {
         $rdsQueueService = $serviceManager->get(RdsQueue::CONFIG_ID);
     } catch (ServiceNotFoundException $e) {
         $rdsQueueService = null;
     }
     if (!$rdsQueueService instanceof RdsQueue || $rdsQueueService === null) {
         $rdsQueueService = new RdsQueue([RdsQueue::OPTION_PERSISTENCE => 'default']);
         $rdsQueueService->setServiceManager($serviceManager);
     }
     return $rdsQueueService;
 }