emit_log_topic-async.php 844 B

1234567891011121314151617181920212223242526272829303132
  1. <?php
  2. use Bunny\Channel;
  3. use Workerman\Worker;
  4. use Roiwk\Rabbitmq\Producer;
  5. use Roiwk\Rabbitmq\AbstractConsumer;
  6. if (file_exists(__DIR__ . '/../../../../../vendor/autoload.php')) {
  7. require __DIR__ . '/../../../../../vendor/autoload.php';
  8. } else {
  9. require __DIR__ . '/../../vendor/autoload.php';
  10. }
  11. $worker = new Worker();
  12. $worker->onWorkerStart = function() {
  13. global $argv;
  14. unset($argv[1]);
  15. $argv = array_values($argv);
  16. $routing_key = isset($argv[1]) && !empty($argv[1]) ? $argv[1] : 'info';
  17. $data = implode(' ', array_slice($argv, 2));
  18. if (empty($data)) {
  19. $data = "Hello World!";
  20. }
  21. $config = require __DIR__ . '/../config.php';
  22. $log = require __DIR__ . '/../log.php';
  23. Producer::connect($config, $log)->publishAsync($data, 'topic_logs', 'topic', $routing_key);
  24. };
  25. Worker::runAll();