本文整理汇总了PHP中Scalr::emergencyMemory方法的典型用法代码示例。如果您正苦于以下问题:PHP Scalr::emergencyMemory方法的具体用法?PHP Scalr::emergencyMemory怎么用?PHP Scalr::emergencyMemory使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Scalr
的用法示例。
在下文中一共展示了Scalr::emergencyMemory方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: Worker
exit;
}
$taskClass = 'Scalr\\System\\Zmq\\Cron\\Task\\' . $cls;
/* @var $task \Scalr\System\Zmq\Cron\AbstractTask */
$task = new $taskClass();
$config = $task->config();
//Initializes MDP Worker
$worker = (new Worker(Scalr::config('scalr.crontab.sockets.broker'), $service, true))->setHeartbeat(Scalr::config('scalr.crontab.heartbeat.delay'))->setLiveness(Scalr::config('scalr.crontab.heartbeat.liveness'))->setLogger(\Scalr::getContainer()->logger('cron/worker.php')->setLevel(\Scalr::config('scalr.crontab.log_level')))->connect();
$interrupt = 0;
// Whether the worker lost connection to the broker.
$disconnected = false;
//Signal handler callback function
$sigHandler = function ($signo = null) use(&$interrupt, $task, $worker, $disconnected) {
static $once = 0;
//Releases emergency memory trying to handle memory limit fatal error
Scalr::$emergencyMemory = null;
$interrupt++;
if ($once++) {
return;
}
if ($disconnected) {
$task->log("DEBUG", "Worker was disconnected. Exiting");
} else {
$task->log("DEBUG", "Worker received termination SIGNAL:%d", intval($signo));
}
//Prevents zombifying
if (!$disconnected && $task->isServiceRegistered() !== false) {
//Disconnect worker
//NOTE! If broker is offline at this moment, the process is hanging while worker is sending the message
$worker->send(Mdp::WORKER_DISCONNECT);
$task->log('DEBUG', 'Worker sent a disconnect message.');