本文整理汇总了PHP中BatchJobPeer::getInProcStatusList方法的典型用法代码示例。如果您正苦于以下问题:PHP BatchJobPeer::getInProcStatusList方法的具体用法?PHP BatchJobPeer::getInProcStatusList怎么用?PHP BatchJobPeer::getInProcStatusList使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BatchJobPeer
的用法示例。
在下文中一共展示了BatchJobPeer::getInProcStatusList方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getQueue
private static function getQueue(Criteria $c, $schedulerId, $workerId, $max_exe_attempts)
{
$schd = BatchJobLockPeer::SCHEDULER_ID;
$work = BatchJobLockPeer::WORKER_ID;
$stat = BatchJobLockPeer::STATUS;
$atmp = BatchJobLockPeer::EXECUTION_ATTEMPTS;
$expr = BatchJobLockPeer::EXPIRATION;
$recheck = BatchJobLockPeer::START_AT;
$schd_id = $schedulerId;
$work_id = $workerId;
$now = time();
$now_str = date('Y-m-d H:i:s', $now);
// same workers unfinished jobs
$query1 = "(\n\t\t\t\t\t\t\t{$schd} = {$schd_id}\n\t\t\t\t\t\tAND {$work} = {$work_id}\n\t\t\t\t\t\tAND {$stat} IN (" . BatchJobPeer::getInProcStatusList() . ")\n\t\t\t\t\t)";
// "others unfinished jobs " - the expiration should be SMALLER than the current time to make sure the job is not
// being processed
$unclosedStatuses = BatchJobPeer::getUnClosedStatusList();
$unclosedStatuses = implode(',', $unclosedStatuses);
$query2 = "(\n\t\t\t\t\t\t\t{$stat} IN ({$unclosedStatuses})\n\t\t\t\t\t\tAND\t{$expr} <= '{$now_str}'\n\t\t\t\t\t)";
// "retry jobs"
$query3 = "(\n\t\t\t\t\t\t{$stat} IN (" . BatchJob::BATCHJOB_STATUS_RETRY . ", " . BatchJob::BATCHJOB_STATUS_ALMOST_DONE . ")\n\t\t\t\t\t\tAND {$recheck} <= '{$now_str}'\n\t\t\t\t\t)";
// "max attempts jobs"
$queryMaxAttempts = "(\n\t\t\t\t\t\t\t\t{$atmp} <= {$max_exe_attempts}\n\t\t\t\t\t\t\t\tOR\n\t\t\t\t\t\t\t\t{$atmp} IS NULL\n\t\t\t\t\t\t\t)";
$crit1 = $c->getNewCriterion($stat, BatchJob::BATCHJOB_STATUS_PENDING);
if ($schedulerId && $workerId) {
$crit1->addOr($c->getNewCriterion($schd, $query1, Criteria::CUSTOM));
}
$crit1->addOr($c->getNewCriterion($schd, $query2, Criteria::CUSTOM));
$crit1->addOr($c->getNewCriterion($schd, $query3, Criteria::CUSTOM));
$c->addAnd($crit1);
$c->addAnd($c->getNewCriterion($atmp, $queryMaxAttempts, Criteria::CUSTOM));
$c->addAnd($c->getNewCriterion(BatchJobLockPeer::DC, kDataCenterMgr::getCurrentDcId()));
return BatchJobLockPeer::doCount($c, false, myDbHelper::getConnection(myDbHelper::DB_HELPER_CONN_PROPEL2));
}
示例2: getExclusive
/**
* will return $max_count of objects using the peer.
* The criteria will be used to filter the basic parameter, the function will encapsulate the inner logic of the BatchJob
* and the exclusiveness.
*
* @param Criteria $c
*/
private static function getExclusive(Criteria $c, kExclusiveLockKey $lockKey, $max_execution_time, $number_of_objects, $max_exe_attempts)
{
$schd = BatchJobPeer::SCHEDULER_ID;
$work = BatchJobPeer::WORKER_ID;
$btch = BatchJobPeer::BATCH_INDEX;
$stat = BatchJobPeer::STATUS;
$atmp = BatchJobPeer::EXECUTION_ATTEMPTS;
$expr = BatchJobPeer::PROCESSOR_EXPIRATION;
$recheck = BatchJobPeer::CHECK_AGAIN_TIMEOUT;
$schd_id = $lockKey->getSchedulerId();
$work_id = $lockKey->getWorkerId();
$btch_id = $lockKey->getBatchIndex();
$now = time();
$now_str = date('Y-m-d H:i:s', $now);
$unClosedStatuses = implode(',', BatchJobPeer::getUnClosedStatusList());
$inProgressStatuses = BatchJobPeer::getInProcStatusList();
$query = "\t\r\n\t\t\t\t\t\t{$stat} IN ({$unClosedStatuses})\r\n\t\t\t\t\tAND\t(\r\n\t\t\t\t\t\t\t{$expr} <= '{$now_str}'\r\n\t\t\t\t\t\tOR\t(\r\n\t\t\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\t\t\t{$stat} = " . BatchJob::BATCHJOB_STATUS_PENDING . " \r\n\t\t\t\t\t\t\t\tOR (\r\n\t\t\t\t\t\t\t\t\t\t{$stat} = " . BatchJob::BATCHJOB_STATUS_RETRY . "\r\n\t\t\t\t\t\t\t\t\tAND {$recheck} <= {$now}\r\n\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t) \r\n\t\t\t\t\t\t\tAND (\r\n\t\t\t\t\t\t\t\t\t{$schd} IS NULL\r\n\t\t\t\t\t\t\t\tAND {$work} IS NULL \r\n\t\t\t\t\t\t\t\tAND {$btch} IS NULL \r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t) \r\n\t\t\t\t\t\tOR (\r\n\t\t\t\t\t\t\t\t{$schd} = {$schd_id} \r\n\t\t\t\t\t\t\tAND {$work} = {$work_id} \r\n\t\t\t\t\t\t\tAND {$btch} = {$btch_id} \r\n\t\t\t\t\t\t\tAND {$stat} IN ({$inProgressStatuses}) \r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t) \r\n\t\t\t\t\tAND (\r\n\t\t\t\t\t\t\t{$atmp} <= {$max_exe_attempts}\r\n\t\t\t\t\t\tOR\t{$atmp} IS NULL\r\n\t\t\t\t\t)";
$c->add($stat, $query, Criteria::CUSTOM);
$c->add(BatchJobPeer::DC, kDataCenterMgr::getCurrentDcId());
$c->addAscendingOrderByColumn(BatchJobPeer::ID);
$c->setLimit($number_of_objects);
// $objects = BatchJobPeer::doSelect ( $c );
$objects = BatchJobPeer::doSelect($c, myDbHelper::getConnection(myDbHelper::DB_HELPER_CONN_PROPEL2));
return self::lockObjects($lockKey, $objects, $max_execution_time);
}