Enqueue Symfony’s Process Components with PHP and ZeroMQ
Join the DZone community and get the full member experience.
Join For FreeI’m going to use one great library called React. With react (reactor pattern implementation in PHP) we can do various thing. One of them are ZeroMQ bindings.
In this simple example we are going to build a simple server and client. The client will send to the server one string that the server will enqueue and executes using the Symfony’s Process component.
Here is the client:
<?php include __DIR__ . '/../vendor/autoload.php'; use Zmqlifo\Client; $queue = Client::factory('tcp://127.0.0.1:4444'); echo $queue->run("ls -latr")->getOutput(); echo $queue->run("pwd")->getOutput();
And finally the server:
<?php include __DIR__ . '/../vendor/autoload.php'; use Symfony\Component\Process\Process; use Zmqlifo\Server; $server = Server::factory('tcp://127.0.0.1:4444'); $server->registerOnMessageCallback(function ($msg) { $process = new Process($msg); $process->setTimeout(3600); $process->run(); return $process->getOutput(); }); $server->run();
You can see the working example here:
you can check the full code of the library in github and Packagist.
Published at DZone with permission of Gonzalo Ayuso, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.
Trending
-
Fun Is the Glue That Makes Everything Stick, Also the OCP
-
Five Java Books Beginners and Professionals Should Read
-
Conditional Breakpoints: A Guide to Effective Debugging
-
JavaFX Goes Mobile
Comments