Skip to content

Instantly share code, notes, and snippets.

@dersonsena
Created August 17, 2023 18:25
Show Gist options
  • Save dersonsena/fa3648fd0bdff15a05d81e46f4ff6071 to your computer and use it in GitHub Desktop.
Save dersonsena/fa3648fd0bdff15a05d81e46f4ff6071 to your computer and use it in GitHub Desktop.
<?php
use Swoole\Server as SwooleServer;
require_once __DIR__ . '/vendor/autoload.php';
function processMessage(AMQPQueue $queue, int $workerId): void
{
// do something here...
}
$server = new SwooleServer('127.0.0.1', 9501);
$server->set(['worker_num' => 2]);
$server->on('Start', function (SwooleServer $server) {
echo "Swoole Consumer Server started\n";
});
$server->on('Receive', function (SwooleServer $server, $workerId) {
echo "Worker {$workerId} started\n";
$amqpConnection = fn (): AMQPConnection => new AMQPConnection([
'host' => $_ENV['RABBITMQ_HOST'],
'port' => $_ENV['RABBITMQ_PORT'],
'login' => $_ENV['RABBITMQ_USERNAME'],
'password' => $_ENV['RABBITMQ_PASSWORD'],
'vhost' => '/'
]);
// code here ...
swoole_timer_tick(1000, fn (AMQPQueue $queue, $workerId) => processMessage($queue, $workerId));
});
$server->start();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment