У меня есть сценарий, который использует while(true)
для запуска, поэтому он работает вечно, пока он не умрет.Как повторять что-то каждые 3 минуты в бесконечном цикле?
Я хочу, чтобы он мог отправлять сообщение один раз каждые 3 минуты и повторно подключать все разъединения, как я могу это сделать?
Сценарий работает на сервере Jabber с помощью PHP хостинга, так что это сбивает с толком, и я не знаю, как сделать это делать каждые 3 минуты и автоматическое повторное соединение во время отключения, потому что, если я использую sleep()
или usleep()
в сценарий будет стекать, а сценарий автоответчика не будет запущен.
Так как я могу это сделать? Может кто-нибудь мне помочь?
try {
while(!$this->disconnect()) {
$this->connect();
while(!$this->isDisconnected()) {
$starts = $this->processUntil(array('message', 'session_start'));
foreach($starts as $go) {
$new = $go[1];
switch($go[0]) {
case 'session_start':
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();
}
$this->presence($status="ONLINE !!!", $show="online");
}
break;
}
}
}
}
} catch(XMPPHP_Exception $e) {
die($e->getMessage());
}
Возможно, вы ищете флеш() – donald123