首页 > 解决方案 > 如何使用 laravel 5.1 队列尝试了一些代码不起作用

问题描述

<?php

namespace App\Jobs;

use App\Jobs\Job;
use Illuminate\Contracts\Bus\SelfHandling;
use Storage;

class UploadFiles extends Job implements SelfHandling
{
    /**
     * Create a new job instance.
     *
     * @return void
     */

    protected $files;

    public function __construct($files)
    {
        //
        $this->files = $files;
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        //
        if(!empty($this->files)):

            foreach ($this->files as $key => $file) :
                # code...
                Storage::put($file->getClientOriginalName(), file_get_contents($file));
            endforeach;
        endif;

    }
}

内部控制器

$files = $request->file('file');

$job = (new UploadFiles($files))
            ->delay(Carbon::now()->addSeconds(15));
dispatch($job);

队列没有响应我做错了什么请提前指导非常感谢。我也看不到作业表内没有数据库条目,响应队列也没有数据,但图像直接上传

标签: laravel

解决方案


在您的 .env 文件中,设置QUEUE_DRIVER=database 并检查配置文件夹集中的 queue.php 配置文件'default' => env('QUEUE_DRIVER', 'sync'),

之后运行命令 php artisan config:clear 然后尝试调度作业


推荐阅读