本文整理汇总了PHP中PartnerPeer::getPartnerPriorityFactorByPartner方法的典型用法代码示例。如果您正苦于以下问题:PHP PartnerPeer::getPartnerPriorityFactorByPartner方法的具体用法?PHP PartnerPeer::getPartnerPriorityFactorByPartner怎么用?PHP PartnerPeer::getPartnerPriorityFactorByPartner使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PartnerPeer
的用法示例。
在下文中一共展示了PartnerPeer::getPartnerPriorityFactorByPartner方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: updatePartnerLoad
public static function updatePartnerLoad($partnerId, $jobType, $jobSubType = null, PropelPDO $con = null)
{
$partner = PartnerPeer::retrieveByPK($partnerId);
$priorityFactor = PartnerPeer::getPartnerPriorityFactorByPartner($partner);
$maxQuota = $partner->getJobTypeQuota($jobType, $jobSubType);
if (!$maxQuota) {
$maxQuota = BatchJobLockPeer::getMaxJobsForPartner($jobType);
}
$dcId = kDataCenterMgr::getCurrentDcId();
// Hack to avoid the not-null constaint on job sub type
if (is_null($jobSubType)) {
$jobSubType = 0;
}
$c = new Criteria();
$c->add(self::PARTNER_ID, $partnerId);
$c->add(self::JOB_TYPE, $jobType);
$c->add(self::JOB_SUB_TYPE, $jobSubType);
$c->add(self::DC, $dcId);
$oldPartnerLoad = self::doSelectOne($c);
if ($oldPartnerLoad === null) {
try {
// Try to insert new entry
$partnerLoad = new PartnerLoad();
$partnerLoad->setPartnerId($partnerId);
$partnerLoad->setJobType($jobType);
$partnerLoad->setJobSubType($jobSubType);
$partnerLoad->setPartnerLoad(1);
$partnerLoad->setDc($dcId);
$partnerLoad->setWeightedPartnerLoad($priorityFactor);
$partnerLoad->setQuota($maxQuota - 1);
$res = $partnerLoad->save();
if ($res == 1) {
return;
// if we arrived here, it means the insert was successful
}
} catch (Exception $e) {
// probably a unique constraint - use the updae version below
}
}
$table = PartnerLoadPeer::TABLE_NAME;
$colPartnerLoad = PartnerLoadPeer::PARTNER_LOAD;
$colWeightedPartnerLoad = PartnerLoadPeer::WEIGHTED_PARTNER_LOAD;
$colJobType = PartnerLoadPeer::JOB_TYPE;
$colJobSubType = PartnerLoadPeer::JOB_SUB_TYPE;
$colPartnerId = PartnerLoadPeer::PARTNER_ID;
$colDC = PartnerLoadPeer::DC;
$colQuota = PartnerLoadPeer::QUOTA;
$sql = "UPDATE {$table} ";
$sql .= "SET {$colPartnerLoad} = ({$colPartnerLoad} + 1)";
$sql .= ", {$colWeightedPartnerLoad} = ({$colWeightedPartnerLoad} + {$priorityFactor})";
$sql .= ", {$colQuota} = ({$colQuota} - 1)";
$sql .= "WHERE {$colJobType} = {$jobType} ";
$sql .= "AND {$colJobSubType} = {$jobSubType} ";
$sql .= "AND {$colPartnerId} = {$partnerId} ";
$sql .= "AND {$colDC} = {$dcId} ";
try {
$affectedRows = $con->exec($sql);
} catch (Exception $e) {
KalturaLog::err("Failed to update partner load with error : " . $e->getMessage());
}
}