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
Composer require easyswoole/queue
manual
- Register queue driver
- Set the consumption process
- Producer delivery task
Redis driver example
use EasySwoole\Redis\Config\RedisConfig;
use EasySwoole\RedisPool\RedisPool;
use EasySwoole\Queue\Driver\Redis;
use EasySwoole\Queue\Queue;
use EasySwoole\Queue\Job;
$config = new RedisConfig([
'host'=>'127.0.0.1'
]);
$redis = new RedisPool($config);
$driver = new Redis($redis);
$queue = new Queue($driver);
go(function ()use($queue){
while (1){
$job = new Job();
$job->setJobData(time());
$id = $queue->producer()->push($job);
var_dump('job create for Id :'.$id);
\co::sleep(3);
}
});
go(function ()use($queue){
$queue->consumer()->listen(function (Job $job){
var_dump($job->toArray());
});
});