Thinkphp5.1 queue无法异步

Thinkphp5.1 queue无法异步进行
Queue::push之后,消费者类里的代码直接执行了,在push的这个接口里返回了,调一次接口要等很久

然后php think queue:listen 和 php think queue:work 这两个命令没懂是什么意思
是监听任务的执行过程和状态还是需要主动去执行命令触发任务?

队列的逻辑是 调了一个接口以后,接口一边调任务去异步执行,一边直接返回,避免前端等待
还是 调了接口以后,调任务,任务只是加到队列了,需要手动运行php命令去执行?

如果是前者的话,现在我调完了接口 一直在等待,直到所有代码都执行完了才能返回
如果是后者的话,现在我的代码是立刻就执行了,并不需要手动触发

img

img

该回答引用GPTᴼᴾᴱᴺᴬᴵ

  • 调用Queue::push方法只是将任务加入队列中,但并不会立即执行该任务。

  • 需要借助命令行工具php think queue:listen 或 php think queue:work 来监听队列中的任务,并将任务交给消费者类来执行。

  • 如果使用php think queue:listen命令,则需要在服务器上一直运行该命令来保持队列的监听;如果使用php think queue:work命令,则需要手动触发该命令来执行队列中的任务。

我也碰到了一样的问题,前端生产者push消息后直接被消费,需要等到消费代码执行完成后才得到返回值,甚至我连命令行都不需要执行,就直接被消费了,这个问题困扰了我很久,作者解决这个问题了吗