Daemon v PHP
PHP je pro mě ideální skriptovací jazyk, znám ho jak svý boty a všechno od práce se souborama po tahání věcí po sítí s ním jde rychle a dostatečně efektivně. Díky tomu, že za poslední rok nebo dva z jádra odstranili všechny memory leaky, které jsem potkal při tvorbě dlouho běžících skriptů (nepočítám vlastní memory leaky), jsem mohl začít psát v PHP i tasky běžící na pozadí. Jako základ mi posloužila podobná Pythonová implementace. Od vytvořené kostry stačí jen vytvořit podtřídu a napsat samotnou implementaci.
Použití
composer require vvondra/php-daemon![]()
<?php
require_once __DIR__ . '/../vendor/autoload.php';
class Sleeper extends PHPDaemon\Daemon {
public function run() {
while (true) {
echo "zzzZZZzzz...\n";
sleep(2);
}
}
}
PHPDaemon\Daemon::parseArgs(new Sleeper);
Výše uvedené stačí uložit jako sleeper.php
a pak už jen použít:
php sleeper.php start php sleeper.php stop php sleeper.php status