receive_logs-async.php 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. use Bunny\Channel;
  3. use Bunny\Message;
  4. use Bunny\AbstractClient;
  5. use Workerman\Worker;
  6. use Roiwk\Rabbitmq\Producer;
  7. use Roiwk\Rabbitmq\AbstractConsumer;
  8. if (file_exists(__DIR__ . '/../../../../../vendor/autoload.php')) {
  9. require __DIR__ . '/../../../../../vendor/autoload.php';
  10. } else {
  11. require __DIR__ . '/../../vendor/autoload.php';
  12. }
  13. $worker = new Worker();
  14. $config = require __DIR__ . '/../config.php';
  15. $log = require __DIR__ . '/../log.php';
  16. $consumer = new class ($config, $log) extends AbstractConsumer {
  17. protected bool $async = true;
  18. protected string $exchange = 'logs';
  19. protected string $exchangeType = 'fanout';
  20. protected string $queue = 'log_queue';
  21. protected array $consume = [
  22. 'noAck' => true,
  23. 'noLocal' => true,
  24. ];
  25. public function consume(Message $message, Channel $channel, AbstractClient $client)
  26. {
  27. echo " [x] Received ", $message->content, "\n";
  28. }
  29. };
  30. $worker->onWorkerStart = [$consumer, 'onWorkerStart'];
  31. Worker::runAll();