温馨提示×

Laravel在Ubuntu上的队列处理

小樊
40
2025-12-16 14:53:21
栏目: 智能运维

在 Ubuntu 上设置 Laravel 队列处理需要以下几个步骤:

  1. 安装 Laravel 和依赖项:

    首先,确保你已经安装了 PHP、Composer 和 Laravel。如果还没有安装,可以参考 Laravel 官方文档进行安装:https://laravel.com/docs/8.x/installation

  2. 配置队列驱动:

    在 Laravel 项目中,打开 .env 文件,找到 QUEUE_CONNECTION 设置项,默认值为 sync。你可以根据需要更改为其他队列驱动,例如 databaseredis 等。

    QUEUE_CONNECTION=database
    

    如果你选择了 database 驱动,还需要运行以下命令创建队列表:

    php artisan queue:table
    php artisan migrate
    
  3. 创建队列工作器:

    使用以下命令创建一个新的队列工作器:

    php artisan make:worker MyWorker
    

    这将在 app/Jobs 目录下创建一个名为 MyWorker.php 的文件。

  4. 编写队列工作器逻辑:

    打开 MyWorker.php 文件,你会看到一个名为 handle 的方法。在这个方法中编写你的队列任务逻辑。

    public function handle()
    {
        // 你的队列任务逻辑
    }
    
  5. 启动队列工作器:

    在终端中运行以下命令启动队列工作器:

    php artisan queue:work
    

    这将开始监听队列并处理任务。你可以使用 --daemon 选项以守护进程模式运行工作器:

    php artisan queue:work --daemon
    
  6. 将任务分发到队列:

    在你的应用程序中,你可以使用 dispatch 函数将任务分发到队列。例如:

    dispatch(new App\Jobs\MyJob());
    

    这将把 MyJob 任务分发到队列中,等待队列工作器处理。

  7. 监控队列:

    你可以使用 Laravel Horizon 来监控队列的状态和进度。首先,安装 Laravel Horizon:

    composer require laravel/horizon
    

    然后,在 config/app.php 文件中将 Horizon 服务提供者添加到 providers 数组中:

    'providers' => [
        // ...
        Laravel\Horizon\HorizonServiceProvider::class,
    ],
    

    最后,运行以下命令启动 Horizon:

    php artisan horizon
    

    这将在 http://your-app-url:8181 上启动一个 Dashboard,你可以在这里查看队列的状态和进度。

现在,你已经在 Ubuntu 上设置好了 Laravel 队列处理。你可以根据需要调整队列驱动、工作器数量等设置,以优化队列性能。

0