Как зацикливаться каждые 3 минуты, но скрипт не спит
У меня есть скрипт для автоответчика чата, который использует while() для запуска, поэтому он работает вечно, пока не умрет.
Я хочу, чтобы он мог отправлять сообщение "PING" один раз в 3 минуты, но все еще может выполнять "АВТОЗАПИСЬ" для каждого полученного сообщения.
Беда в том, что если я использую функцию sleep (180) для зацикливания сообщения "PING" каждые 3 минуты, то в "AUTO RESPOND" каждое сообщение перестанет отвечать на сообщения, потому что скрипт переходит в режим сна со сном (180).
Итак, какое решение для создания сценария можно выполнить зацикливание сообщения "PING" каждые 3 минуты, но все же можно выполнять "AUTO RESPOND" для каждого сообщения одновременно.
Что возможно?
Кто-то может помочь мне на основе моего сценария ниже?
$this->connect();
while(!$this->isDisconnected()) {
$starts = $this->processUntil(array('message', 'session_start'));
foreach($starts as $go) {
switch($go[0]) {
case 'session_start':
$this->presence($status="Just Online !!!", $show="online");
break;
case 'message':
$filter = $show="online";
if($new['from'] == $filter) {
$sender = explode('@', $new['from']);
$this->message($new['from'], $body="AUTO RESPOND MESSAGE: Sorry $sender[0] Iam Not Here Right Now.", $type="chat");
}
$the_time = time();
$interval = 3*60;
while(true) {
if ($the_time + $interval >= time()) {
$this->message($myself, $body="PING !!!", $type="chat");
$the_time = time();
}
}
break;
}
}
}