Как зацикливаться каждые 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;  
 }  
}  
}  

0 ответов

Другие вопросы по тегам