Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 队列:正在Laravel 5中同步处理push()_Php_Laravel_Queue - Fatal编程技术网

Php 队列:正在Laravel 5中同步处理push()

Php 队列:正在Laravel 5中同步处理push(),php,laravel,queue,Php,Laravel,Queue,我正在运行Laravel5,我正在尝试获取队列命令。我开始跑步: Queue::push( new MyCommand() ); 要创建I命令,我执行了以下操作: php artisan make:command --queued MyCommand MyCommand包含一个sleep(20)和file\u put\u内容('test.txt','I work!') 我正在运行的命令行: beanstalkd -l 127.0.0.1 -p 11301 & php artisan

我正在运行Laravel5,我正在尝试获取队列命令。我开始跑步:

Queue::push( new MyCommand() );
要创建I命令,我执行了以下操作:

php artisan make:command --queued MyCommand
MyCommand包含一个
sleep(20)
file\u put\u内容('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
之外,您没有任何
队列驱动程序
值。
env()
方法:

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

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

确保
sleep()
调用在
handle()
方法中,而不是构造函数中?是的,它在handle()函数中。我将用全班同学更新我的问题。只是为了确保,除了
.env
文件中设置的
beanstalkd
之外,您没有任何
队列驱动程序
值?@Bogdan很好,先生!我完全忘记了.env文件。这就解决了!请将您的评论作为答案发布,我将标记它。