//Sleep interval, first sleep will be long sleep(isset($sleep) ? 1 : 60 - $startTime->format('i')); unset($startTime); //Next sleeps will be shorter $sleep = true; continue; } //Update previous start time with current unset($previous); $previous = $startTime; try { //Initializes task factory $launcher = new Launcher($startTime); //Performs health check at each start Launcher::healthcheck(); $launcher->setLogger($logger)->launch(); } catch (ZMQException $e) { if ($e->getCode() == 4) { //Catches ETERM $interrupt++; usleep(1); break; } $logger->fatal("Launcher error: %s", $e->getMessage()); } //Release resources unset($launcher); unset($startTime); unset($sleep); if ($previous->format('i') % 5 === 0) { $logger->debug("Memory usage: %0.2f Kb", memory_get_usage() / 1024);