PHP code example of spiral / roadrunner-services
1. Go to this page and download the library: Download spiral/roadrunner-services library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
spiral / roadrunner-services example snippets
use Spiral\RoadRunner\Services\Manager;
use Spiral\Goridge\RPC\RPC;
$rpc = RPC::create('tcp://127.0.0.1:6001'));
$manager = new Manager($rpc);
use Spiral\RoadRunner\Services\Exception\ServiceException;
try {
$result = $manager->create(
name: 'listen-jobs',
command: 'php app.php queue:listen',
processNum: 3,
execTimeout: 0,
remainAfterExit: false,
env: ['APP_ENV' => 'production'],
restartSec: 30
);
if (!$result) {
throw new ServiceException('Service creation failed.');
}
} catch (ServiceException $e) {
// handle exception
}
use Spiral\RoadRunner\Services\Exception\ServiceException;
try {
$status = $manager->statuses(name: 'listen-jobs');
// Will return an array with statuses of every run process
// [
// [
// 'cpu_percent' => 59.5,
// 'pid' => 33,
// 'memory_usage' => 200,
// 'command' => 'foo/bar',
// 'error' => null
// ],
// [
// 'cpu_percent' => 60.2,
// 'pid' => 34,
// 'memory_usage' => 189,
// 'command' => 'foo/bar'
// 'error' => [
// 'code' => 1,
// 'message' => 'Process exited with code 1'
// 'details' => [...] // array with details
// ]
// ],
// ]
} catch (ServiceException $e) {
// handle exception
}
use Spiral\RoadRunner\Services\Exception\ServiceException;
try {
$result = $manager->restart(name: 'listen-jobs');
if (!$result) {
throw new ServiceException('Service restart failed.');
}
} catch (ServiceException $e) {
// handle exception
}
use Spiral\RoadRunner\Services\Exception\ServiceException;
try {
$result = $manager->terminate(name: 'listen-jobs');
if (!$result) {
throw new ServiceException('Service termination failed.');
}
} catch (ServiceException $e) {
// handle exception
}
use Spiral\RoadRunner\Services\Exception\ServiceException;
try {
$services = $manager->list();
// Will return an array with services names
// ['listen-jobs', 'websocket-connection']
} catch (ServiceException $e) {
// handle exception
}