Queue Introduction

The Easyswoole package implements a lightweight queue, with Redis as the queue driver by default.

You can implement a queue driver yourself to implement queue storage in kafka or boot mode.

As you can see, Queue is not a separate component, it is more like a facade component that uniformly encapsulates different driver queues.

start installation

  1. Composer require easyswoole/queue

manual

  • Register queue driver
  • Set the consumption process
  • Producer delivery task

Redis driver example

  1. use EasySwoole\Redis\Config\RedisConfig;
  2. use EasySwoole\RedisPool\RedisPool;
  3. use EasySwoole\Queue\Driver\Redis;
  4. use EasySwoole\Queue\Queue;
  5. use EasySwoole\Queue\Job;
  6. $config = new RedisConfig([
  7. 'host'=>'127.0.0.1'
  8. ]);
  9. $redis = new RedisPool($config);
  10. $driver = new Redis($redis);
  11. $queue = new Queue($driver);
  12. go(function ()use($queue){
  13. while (1){
  14. $job = new Job();
  15. $job->setJobData(time());
  16. $id = $queue->producer()->push($job);
  17. var_dump('job create for Id :'.$id);
  18. \co::sleep(3);
  19. }
  20. });
  21. go(function ()use($queue){
  22. $queue->consumer()->listen(function (Job $job){
  23. var_dump($job->toArray());
  24. });
  25. });