php - Queue:push() 在 Laravel 5 中被同步处理

标签 php laravel queue

我正在运行 Laravel 5,我正在尝试让命令排队。我通过运行开始:

Queue::push( new MyCommand() );

为了创建命令,我做了:

php artisan make:command --queued MyCommand

MyCommand 包含一个 sleep(20)file_put_contents('test.txt','I work!')

我正在运行的命令行:

beanstalkd -l 127.0.0.1 -p 11301 &
php artisan queue:listen &

并且 config/queue.php 设置为:

'default'     => env('QUEUE_DRIVER', 'beanstalkd'),

...

'beanstalkd' => [
  'driver' => 'beanstalkd',
  'host'   => 'localhost:11301',
  'queue'  => 'default',
  'ttr'    => 60,
],

当我从浏览器中点击代码时,它会挂起 20 秒并在完成之前丢弃文件,而不是立即返回。

我还需要做些什么才能在后台正确排队命令吗?

最佳答案

请确保,除了 .env 文件中设置的 beanstalkd 之外,您没有任何 QUEUE_DRIVER 值。 env() 方法:

'default' => env('QUEUE_DRIVER', 'beanstalkd'),

将首先在当前加载的环境变量中搜索该键,如果没有匹配项,它将回退到作为第二个参数传递的 beanstalkd 值。

关于php - Queue:push() 在 Laravel 5 中被同步处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29014733/

相关文章:

php - 推送数组数据

php - Mysql 用where In条件收集数据

php - 如何在不传递数组的情况下使类可以访问数组?

laravel - 找不到类 'Monolog\Logger',Laravel 4 中安装错误

php - 如何在 php(Laravel) 中使用动态列表框

java - 如何设置 Java DelayQueue 的容量

php - Laravel 5 - 分页 Eloquent 集合

laravel - 如何使用VueJS增强现有的Laravel项目?

java - Java中如何查找HeapQueue是否包含值?

java - 在队列中搜索字符串