public function testEnqueueStatusMockRedis() { //dont run redis test for php less than 5.3 $version = explode('.', PHP_VERSION); if (!($version[0] >= 5 && $version[1] >= 3)) { //error_log("PHP version less than 5.3, Skipping Redis Tests..."); return; } else { require_once THINKUP_ROOT_PATH . 'webapp/plugins/twitterrealtime/model/class.StreamMessageQueueRedis.php'; } $stream_data = $this->setUpData(true); $twitter_data = $this->setUpTwitterData(); $queue = new StreamMessageQueueRedis(); $queue->redis = new MockRedis(); StreamMessageQueueFactory::$queue = $queue; $consumer_user_stream = new ConsumerUserStream('username', 'password'); $consumer_user_stream->setKey('*****@*****.**', 1); $procs_data = FixtureBuilder::build('stream_procs', array('process_id' => getmypid(), 'email' => '*****@*****.**', 'instance_id' => 1)); $consumer_user_stream->enqueueStatus("string1"); $consumer_user_stream->enqueueStatus("string2"); $this->assertIdentical(array('string1', 'string2'), MockRedis::$queue); StreamMessageQueueFactory::$queue = null; MockRedis::$queue = null; // stream proc data set $sql = "select process_id, email, instance_id, unix_timestamp(last_report) as last_report from " . $this->table_prefix . "stream_procs"; $stmt = PluginOptionMysqlDAO::$PDO->query($sql); $data = $stmt->fetchAll(); $process_id = getmypid(); $this->assertIdentical($data[0]['process_id'], $process_id . ''); $recent_time = time() - 50; $this->assertTrue($data[0]['last_report'] > $recent_time); }
/** * Enqueue each status * * @param string $status */ public function enqueueStatus($status) { // get our queue, redis or mysql depending on plugin config value $queue = StreamMessageQueueFactory::getQueue(); $queue->enqueueStatus($status); $queue->setLastReport($this->email, $this->instance_id); }
/** * @return void */ public function processStreamData() { $queue = StreamMessageQueueFactory::getQueue(); while (true) { try { $this->process($queue); } catch (Exception $e) { error_log('Exception caught, sleeping...:' . $e->getMessage()); } } }
public static function getQueue() { // get stream plugin settings $plugin_option_dao = DAOFactory::GetDAO('PluginOptionDAO'); $options = $plugin_option_dao->getOptionsHash('twitterrealtime', true); if (is_null(self::$queue)) { if (isset($options['use_redis']) && $options['use_redis']->option_value == "true") { // we need a redis queue self::$queue = new StreamMessageQueueRedis(); } else { // we need a mysql queue self::$queue = new StreamMessageQueueMySQL(); } } return self::$queue; }
public function testGetRedisQueue() { // if we are php 5.3 or greater run test, else skip... $version = explode('.', PHP_VERSION); if (!($version[0] >= 5 && $version[1] >= 3)) { //error_log("PHP version less than 5.3, Skipping Redis Tests..."); return; } else { require_once THINKUP_ROOT_PATH . 'webapp/plugins/twitterrealtime/model/class.StreamMessageQueueRedis.php'; } $builder_plugin = FixtureBuilder::build('plugins', array('folder_name' => 'twitterrealtime', 'is_active' => 1)); $plugin_id = $builder_plugin->columns['last_insert_id']; $namespace = OptionDAO::PLUGIN_OPTIONS . '-' . $plugin_id; $plgin_data = FixtureBuilder::build('options', array('namespace' => $namespace, 'option_name' => 'use_redis', 'option_value' => 'true')); $queue = StreamMessageQueueFactory::getQueue(); $this->assertIsA($queue, 'StreamMessageQueueRedis'); }