Beispiel #1
0
 private function _send()
 {
     $model = new SmsQueue();
     $messages = $model->getToSend();
     $loadBalancer = new Logic_LoadBalancer();
     $data = array();
     while ($current = $messages->current()) {
         $data[$current->ws_package_id]['queue'] = $current;
         $data[$current->ws_package_id]['messages'][$current->phone_number] = $current->message;
         $messages->next();
     }
     foreach ($data as $d) {
         $package = $d['queue']->findParentRow('WsPackageSms');
         $serviceSet = $package->findParentRow('WsServiceSet');
         $serviceGroup = $serviceSet->findParentRow('WsServiceSmsGroup');
         $service = $loadBalancer->addServiceGroup($serviceGroup);
         $logic = new Logic_Sms($service->getService());
         $status = $logic->package(null, $d['messages']);
         if (isset($status->packageId) && !empty($status->packageId)) {
             $d['queue']->setFromArray(array('send' => true))->save();
             $packageModel = new SmsPackage();
             $packageModel->updatePackageId($status->packageId, $d['queue']->ws_package_id);
         }
     }
 }
Beispiel #2
0
 /**
  * Metoda zwraca właściwą usługę po testach LoadBalancera
  * @return Logic_Service
  */
 public function getLoadBalancer($serviceType, $serviceGroupId)
 {
     $loadBalancer = new Logic_LoadBalancer();
     $this->_serviceGroup = $this->_getServiceGroup($serviceType, $serviceGroupId)->current();
     if (null === $this->_serviceGroup) {
         throw new Logic_Exception("No service group found!");
     }
     $loadBalancer->addServiceGroup($this->_serviceGroup);
     return $loadBalancer;
 }