當前位置: 首頁>>代碼示例>>PHP>>正文


PHP BatchJobPeer::doCountGroupBy方法代碼示例

本文整理匯總了PHP中BatchJobPeer::doCountGroupBy方法的典型用法代碼示例。如果您正苦於以下問題:PHP BatchJobPeer::doCountGroupBy方法的具體用法?PHP BatchJobPeer::doCountGroupBy怎麽用?PHP BatchJobPeer::doCountGroupBy使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在BatchJobPeer的用法示例。


在下文中一共展示了BatchJobPeer::doCountGroupBy方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: getNextJobPriority

 public static function getNextJobPriority($jobType)
 {
     //$priorities = array(1 => 33, 2 => 27, 3 => 20, 4 => 13, 5 => 7);
     $priorities = kConf::get('priority_percent');
     $createdAt = time() - kConf::get('priority_time_range');
     //		$createdAt = kConf::get('priority_time_range');
     $c = new Criteria();
     $c->add(BatchJobPeer::CREATED_AT, $createdAt, Criteria::GREATER_THAN);
     $c->add(BatchJobPeer::JOB_TYPE, $jobType);
     $c->add(BatchJobPeer::STATUS, BatchJob::BATCHJOB_STATUS_PENDING);
     $c->clearSelectColumns();
     $c->addSelectColumn('MAX(' . BatchJobPeer::PRIORITY . ')');
     $stmt = BatchJobPeer::doSelectStmt($c, myDbHelper::getConnection(myDbHelper::DB_HELPER_CONN_PROPEL2));
     $maxPriority = $stmt->fetchColumn();
     // gets the current queues
     $c = new Criteria();
     $c->add(BatchJobPeer::CREATED_AT, $createdAt, Criteria::GREATER_THAN);
     $c->add(BatchJobPeer::JOB_TYPE, $jobType);
     $c->add(BatchJobPeer::STATUS, BatchJob::BATCHJOB_STATUS_PENDING, Criteria::GREATER_THAN);
     $c->addGroupByColumn(BatchJobPeer::PRIORITY);
     // To prevent stress on the master DB - use the slave for checking the queue sizes
     $queues = BatchJobPeer::doCountGroupBy($c, myDbHelper::getConnection(myDbHelper::DB_HELPER_CONN_PROPEL2));
     // copy the queues and calcs the total
     $total = 0;
     $queues_size = array();
     foreach ($queues as $queue) {
         $queues_size[$queue['PRIORITY']] = $queue[BatchJobPeer::COUNT];
         $total += $queue[BatchJobPeer::COUNT];
     }
     // go over the priorities and see if its percent not used
     foreach ($priorities as $priority => $top_percent) {
         if ($priority > $maxPriority) {
             continue;
         }
         if (!isset($queues_size[$priority])) {
             return $priority;
         }
         $percent = $queues_size[$priority] / ($total / 100);
         if ($percent < $top_percent) {
             return $priority;
         }
     }
     return 1;
 }
開發者ID:richhl,項目名稱:kalturaCE,代碼行數:44,代碼來源:kBatchManager.php


注:本文中的BatchJobPeer::doCountGroupBy方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。