设想一个呼叫中心不能被客户每分钟超过2次呼叫淹没。因此,该范围之外的任何人都将获得电子邮件支持链接($ bTrigger = FALSE)。其他人($ bTrigger = TRUE)将获得技术支持电话号码。每分钟间隔触发x个动作的最有效方法是什么?
脚本是PHP。那么,建立这个最有效率和最准确的方法是什么?
这是我到目前为止,但不幸的是它只是每分钟触发一次。我似乎无法弄清楚为什么它不会每分钟运行两次。
<?php
$bTrigger = FALSE;
$sDir = dirname(__FILE__);
$sDir = rtrim($sDir,'/');
$sFile = $sDir . '/MINUTE-TIMER.txt';
$sLine = @ file_get_contents($sFile);
$sLine = str_replace("\r\n",'',$sLine);
$sLine = str_replace("\r",'',$sLine);
$sLine = str_replace("\n",'',$sLine);
$sLine = str_replace("\t",'',$sLine);
$asParts = explode(',',$sLine);
$nLetThru = @ $asParts[0];
$nLetThru = intval($nLetThru);
$nLastMin = @ $asParts[1];
$nLastMin = intval($nLastMin);
$nCurMin = intval(date('i'));
if (empty($sLine)) {
$nLetThru = 0;
$nLastMin = 0;
}
$nMaxLetThru = 2;
if ($nCurMin != $nLastMin) { // meaning, a new minute since last checked
if ($nLetThru <= $nMaxLetThru) { // meaning, we haven't hit more than max allowed
$bTrigger = TRUE;
++$nLetThru;
file_put_contents($sFile,"$nLetThru,$nCurMin");
} else {
file_put_contents($sFile,"0,$nCurMin");
}
}
if ($bTrigger) {
echo 'TRIGGERED!!!!';
} else {
echo 'not triggered';
}
我们在这里帮助您解决特定问题,而不是为您做好工作。 –
@MarcB我即将回答它,然后人们可以挑战这个答案。我将从挑战中学习。 – Volomike
您的问题需要改进。如果你有答案,为什么不包括它? – Kermit