PHP code example of nexus-actors / messenger-console-swoole
1. Go to this page and download the library: Download nexus-actors/messenger-console-swoole 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/ */
nexus-actors / messenger-console-swoole example snippets
use Monadial\Nexus\Core\Actor\ActorSystem;
use Monadial\Nexus\Core\Actor\Props;
use Monadial\Nexus\Messenger\Console\Swoole\ThreadedConsumerBootstrap;
use Monadial\Nexus\Messenger\Routing\MapMessageRouter;
use Monadial\Nexus\Messenger\Routing\MessageRouter;
use Symfony\Component\Messenger\Transport\Receiver\ReceiverInterface;
final class OrderConsumerBootstrap implements ThreadedConsumerBootstrap
{
public function setup(ActorSystem $system): MessageRouter
{
$ref = $system->spawn(Props::fromFactory(fn() => new OrdersActor()), 'orders');
return new MapMessageRouter([OrderPlaced::class => $ref]);
}
public function receiver(): ReceiverInterface
{
// Return a FRESH connection per thread — the broker load-balances
return new RedisTransport(Redis::connect(getenv('REDIS_URL')));
}
}
// bin/console
$app = new Application('nexus-worker', '1.0.0');
$app->addCommand(new ThreadedConsumeCommand(OrderConsumerBootstrap::class));
$app->run();