/**
  * queues an action
  * 
  * @param string $_action
  * @param mixed  $_arg1
  * @param mixed  $_arg2
  * ...
  * 
  * @return string the job id
  */
 public function queueAction()
 {
     $params = func_get_args();
     $action = array_shift($params);
     $message = array('action' => $action, 'account_id' => Tinebase_Core::getUser()->getId(), 'params' => $params);
     if (Tinebase_Core::isLogLevel(Zend_Log::INFO)) {
         Tinebase_Core::getLogger()->info(__METHOD__ . '::' . __LINE__ . " queueing action: '{$action}'");
     }
     return $this->_queue->send($message);
 }
Example #2
0
 public function send($template)
 {
     $config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/application.ini', APPLICATION_ENV);
     $queue = new Zend_Queue('Activemq', $config->queue->activemq->toArray());
     $data = array();
     $data['RecipientEmail'] = $template->getRecipientEmail();
     $data['RecipientName'] = $template->getRecipientName();
     $data['From'] = $template->getFrom();
     $data['Subject'] = $template->getSubject();
     $data['BodyText'] = $template->getBodyText();
     $data['BodyHtml'] = $template->getBodyHtml();
     $data['SenderEmail'] = $template->getSenderEmail();
     $data['SenderName'] = $template->getSenderName();
     $message = $queue->send(serialize($data));
 }
Example #3
0
 /**
  * Send a message to the queue
  *
  * @param  Custom_Message|Custom_Messages $message message
  * @return $this
  * @throws Zend_Queue_Exception
  */
 public function send($message)
 {
     if (!($message instanceof Custom_Message || $message instanceof Custom_Messages)) {
         /**
          * @see Zend_Queue_Exception
          */
         require_once 'Zend/Queue/Exception.php';
         throw new Zend_Queue_Exception('$message must be an instance of Custom_Message or Custom_Messages');
     }
     if ($message instanceof Custom_Message) {
         $response = parent::send($message->__toString());
     } else {
         foreach ($message as $i => $one) {
             $response = parent::send($one->__toString());
         }
     }
     return $this;
 }
 public function start(Zend_Queue $q)
 {
     Loader::library('database_indexed_search');
     $this->is = new IndexedSearch();
     Loader::model('attribute/categories/collection');
     Loader::model('attribute/categories/file');
     Loader::model('attribute/categories/user');
     $attributes = CollectionAttributeKey::getList();
     $attributes = array_merge($attributes, FileAttributeKey::getList());
     $attributes = array_merge($attributes, UserAttributeKey::getList());
     foreach ($attributes as $ak) {
         $ak->updateSearchIndex();
     }
     $db = Loader::db();
     $db->Execute('truncate table PageSearchIndex');
     $r = $db->Execute('select Pages.cID from Pages left join CollectionSearchIndexAttributes csia on Pages.cID = csia.cID where (ak_exclude_search_index is null or ak_exclude_search_index = 0) and cIsActive = 1');
     while ($row = $r->FetchRow()) {
         $q->send($row['cID']);
     }
 }
Example #5
0
 /**
  * queues an action
  * 
  * @param string $_action
  * @param mixed  $_arg1
  * @param mixed  $_arg2
  * ...
  * 
  * @return string
  */
 public function queueAction()
 {
     $params = func_get_args();
     $action = array_shift($params);
     $decodedAction = array('action' => $action, 'params' => $params);
     Tinebase_Core::getLogger()->info(__METHOD__ . '::' . __LINE__ . " queuing action: '{$action}'");
     try {
         $message = serialize($decodedAction);
         //if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . $message);
     } catch (Exception $e) {
         Tinebase_Core::getLogger()->err(__METHOD__ . '::' . __LINE__ . " could not create message for action: '{$action}'");
         return;
     }
     if ($this->_queue) {
         $this->_queue->send($message);
     } else {
         // execute action immediately if no queue service is available
         Tinebase_Core::getLogger()->notice(__METHOD__ . '::' . __LINE__ . " no queue configured -> directly execute action: '{$action}'");
         $this->_executeAction($message);
     }
 }
Example #6
0
 /**
  * @group ZF-7650
  */
 public function testReceiveWillRetrieveZeroItems()
 {
     $options = $this->getTestConfig();
     $options['name'] = '/temp-queue/ZF7650';
     $queue = new Zend_Queue('Db', $options);
     $queue2 = $queue->createQueue('queue');
     $queue->send('My Test Message 1');
     $queue->send('My Test Message 2');
     $messages = $queue->receive(0);
     $this->assertEquals(0, count($messages));
 }
Example #7
0
 public function test_ZF_7650()
 {
     // Zend_Queue_Adapter_Array
     $queue = new Zend_Queue('Array');
     $queue2 = $queue->createQueue('queue');
     $queue->send('My Test Message 1');
     $queue->send('My Test Message 2');
     $messages = $queue->receive(0);
     $this->assertEquals(0, count($messages));
     // Zend_Queue_Adapter_Memcacheq
     $driverOptions = array();
     if (defined('TESTS_ZEND_QUEUE_MEMCACHEQ_HOST')) {
         $driverOptions['host'] = TESTS_ZEND_QUEUE_MEMCACHEQ_HOST;
     }
     if (defined('TESTS_ZEND_QUEUE_MEMCACHEQ_PORT')) {
         $driverOptions['port'] = TESTS_ZEND_QUEUE_MEMCACHEQ_PORT;
     }
     $options = array('name' => 'ZF7650', 'driverOptions' => $driverOptions);
     $queue = new Zend_Queue('Memcacheq', $options);
     $queue2 = $queue->createQueue('queue');
     $queue->send('My Test Message 1');
     $queue->send('My Test Message 2');
     $messages = $queue->receive(0);
     $this->assertEquals(0, count($messages));
     // Zend_Queue_Adapter_Db
     $driverOptions = array();
     if (defined('TESTS_ZEND_QUEUE_DB')) {
         require_once 'Zend/Json.php';
         $driverOptions = Zend_Json::decode(TESTS_ZEND_QUEUE_DB);
     }
     $options = array('name' => '/temp-queue/ZF7650', 'options' => array(Zend_Db_Select::FOR_UPDATE => true), 'driverOptions' => $driverOptions);
     $queue = new Zend_Queue('Db', $options);
     $queue2 = $queue->createQueue('queue');
     $queue->send('My Test Message 1');
     $queue->send('My Test Message 2');
     $messages = $queue->receive(0);
     $this->assertEquals(0, count($messages));
     // Zend_Queue_Adapter_Activemq
     $driverOptions = array();
     if (defined('TESTS_ZEND_QUEUE_ACTIVEMQ_HOST')) {
         $driverOptions['host'] = TESTS_ZEND_QUEUE_ACTIVEMQ_HOST;
     }
     if (defined('TESTS_ZEND_QUEUE_ACTIVEMQ_PORT')) {
         $driverOptions['port'] = TESTS_ZEND_QUEUE_ACTIVEMQ_PORT;
     }
     if (defined('TESTS_ZEND_QUEUE_ACTIVEMQ_SCHEME')) {
         $driverOptions['scheme'] = TESTS_ZEND_QUEUE_ACTIVEMQ_SCHEME;
     }
     $options = array('driverOptions' => $driverOptions);
     $queue = new Zend_Queue('Activemq', $options);
     $queue2 = $queue->createQueue('queue');
     $queue->send('My Test Message 1');
     $queue->send('My Test Message 2');
     $messages = $queue->receive(0);
     $this->assertEquals(0, count($messages));
 }
Example #8
0
 /**
  * @group ZF-7650
  */
 public function testReceiveWillRetrieveZeroItems()
 {
     $options = array('driverOptions' => $this->getTestConfig());
     $queue = new Zend_Queue('Activemq', $options);
     $queue2 = $queue->createQueue('queue');
     $queue->send('My Test Message 1');
     $queue->send('My Test Message 2');
     $messages = $queue->receive(0);
     $this->assertEquals(0, count($messages));
 }
Example #9
0
 /**
  * @group ZF-7650
  */
 public function testReceiveWillRetrieveZeroItems()
 {
     // Zend_Queue_Adapter_Array
     $queue = new Zend_Queue('Array');
     $queue2 = $queue->createQueue('queue');
     $queue->send('My Test Message 1');
     $queue->send('My Test Message 2');
     $messages = $queue->receive(0);
     $this->assertEquals(0, count($messages));
 }
Example #10
0
    }
    $sendresult[$key] = array($email, $receive_name);
    $receiverinfo .= $email . "," . $receive_name . ";";
}
$maillogsidstr = '';
$totalnum = 0;
$arr = array();
$current_user_id = $current_user->id;
foreach ($sendresult as $rst) {
    //生成日志ID
    $maillogsid = $adb->getUniqueID("ec_maillogs");
    $maillogsidstr .= $maillogsid . ",";
    $to_email = $rst[0];
    $receiver = $rst[1];
    $message = "sjid={$sjid}&maillogsid={$maillogsid}&to_email={$to_email}&receiver={$receiver}&from_name={$from_name}&from_email={$from_email}&interval={$interval}&subject={$subject}&mailcontent={$mailcontent}&userid=" . $current_user_id;
    $queue->send($message);
    $totalnum++;
}
//保存事件
saveMailLists($sjid, $subject, $mailcontent, $maillogsidstr, $receiverinfo, $from_name, $from_email, $totalnum);
echo "SUCCESS";
die;
exit;
//list
function saveMailLists($sjid, $subject, $mailcontent, $maillogsidstr, $receiverinfo, $from_name, $from_email, $totalnum)
{
    global $adb;
    global $current_user;
    $maillistname = "QFYJ" . date("Ymd") . "-" . $sjid;
    $mailcontent = addslashes($mailcontent);
    $sql = "insert into ec_maillists(maillistsid,maillistname,smcreatorid,createdtime,deleted,mailids,receiverinfo,from_name,from_email,subject,mailcontent,totalnum) values(" . $sjid . ",'" . $maillistname . "','" . $current_user->id . "','" . date("Y-m-d H:i:s") . "',0,'" . $maillogsidstr . "','" . $receiverinfo . "','" . $from_name . "','" . $from_email . "','" . $subject . "','" . $mailcontent . "','" . $totalnum . "')";
Example #11
0
 public function send($message)
 {
     parent::send((string) $message);
 }
 /**
  * Add task to queue
  *
  * array (
  *     'task_name' => '...',
  *     'params' => array(),
  * )
  *
  * @param array $task
  * @return Enterprise_Queue_Model_Consumer
  */
 public function addTask(array $task)
 {
     $this->_queue->send(Zend_Json::encode($task));
     return $this;
 }