Scalr\System\Zmq\Cron\PidFile::remove PHP Метод

remove() публичный Метод

Removes pid file
public remove ( )
    public function remove()
    {
        if (file_exists($this->file)) {
            if (is_writable($this->file)) {
                unlink($this->file);
            } else {
                $this->log("ERROR", "Could not remove pid file '%s'. Insufficient permissions.", $this->file);
            }
        }
    }

Usage Example

Пример #1
0
$oPid = new PidFile(CACHEPATH . '/cron.client.' . $task->getName() . '.pid', '/client.php');
$oPid->setLogger($logger);
$oPid->create();
$interrupt = 0;
//Signal handler callback function
$sigHandler = function ($signo = null) use(&$interrupt, $oPid, $task, $taskConfig) {
    static $once = 0;
    $interrupt++;
    if ($once++) {
        return;
    }
    $task->log($taskConfig->daemon ? 'SERVICE' : 'DEBUG', "Client recieved termination SIGNAL:%d", intval($signo));
    //Terminating child processes (workers)
    $task->shutdown();
    //Removing pid file
    $oPid->remove();
    //No use to proceed
    exit;
};
pcntl_signal(SIGINT, $sigHandler);
pcntl_signal(SIGTERM, $sigHandler);
pcntl_signal(SIGHUP, $sigHandler);
register_shutdown_function($sigHandler);
if ($taskConfig->daemon) {
    $task->log('SERVICE', 'Starting %s...', $task->getName());
}
$scalrService = $task->getScalrService();
while (!$interrupt) {
    $scalrService->update(['state' => ScalrService::STATE_RUNNING, 'lastStart' => new DateTime(), 'lastFinish' => null, 'numTasks' => 0, 'numWorkers' => 1]);
    try {
        $task->run();