上一篇文章简单梳理了一下怎么启动rabbitmq队列,但是在真实的项目中队列肯定是在后台监听的。
因此就想想着起一个后台进程,但是我又没有服务器。
就想着在win10上安装一个Ubuntu。
入了一堆坑,简单的梳理一下,省着以后自己忘记了
准备
wsl2是windows内置的linux子系统
1.Win10 版本号为 2004(内部版本19041或更高)即可,如果低于此版本可使用 Windows 10 易升工具手动升级。下载 Windows 10 易升工具:
https://www.microsoft.com/zh-cn/software-download/windows10
2.在Microsoft Store中搜索 Ubuntu,安装20.04此版本
入坑:首次安装的Ubuntu,后来在更新docker到最新版本,配置的时候发现需要wsl2,而默认的ubuntu是wsl1.
因此卸载了wsl1又重新安装的。
安装完成以后配置一下。完了以后需要重启一下
docker环境
我以前的版本是2.1,太旧了不支持wsl2
因此更新到了最新版本4.3.1
跟之前的版本有很大的区别,下面就是开启wsl的配置
laradock
以前的版本php的版本是7.1,我本来想配置两个php版本,弄了半天了,死活build不过去,最后放弃了……
从官网从新下载了一个最新的laradock.,因为我的项目是laravel7的,因此我安装了一个7.4的版本。大家按情况配置就行。
上一篇文章说道过在起rabbitmq之前,需要把.env里面用到amqp扩展的都改成true
具体参考:https://blog.csdn.net/hshshshshs1/article/details/121977752?spm=1001.2014.3001.5501
docker-compose build rabbitmq
docker-compose build php-worker
docker-compose up -d rabbitmq php-work
配置如下
[program:base_work_rabbitmq]
process_name=%(program_name)s_%(process_num)02d
directory=/var/www/base_work
command=php artisan queue:work --queue="rabbit_test"
autostart=true
autorestart=true
numprocs=1
user=laradock
redirect_stderr=true
stdout_logfile=/var/www/base_work/storage/logs/worker.log
启动
winpty docker-compose exec php-worker supervisorctl
reload
status
在守护进程里面常用到的命令
status
reload
restart
stop
项目代码
<?php
namespace App\Http\Controllers\Api;
use App\Jobs\RabbitQueue;
class RabbitmqController extends ApiController
{
public function index()
{
RabbitQueue::dispatch()->onQueue("rabbit_test");
dd(1111111);
}
}
<?php
namespace App\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
class RabbitQueue implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
info("================我来了============rabbit==============");
}
}
运行代码
搞定,虽然整理的不多,但是自己在配置的时候花费了好长时间。希望大家少走弯路……一次成功。