pierophp / laravel-queue-manager
Laravel 队列管理器
v0.0.66
2022-01-18 19:27 UTC
Requires
- php: >=7.0.0
- illuminate/bus: ^5.3 || ^6.0 || ^7.0 || ^8.0 || ^9.0
- illuminate/database: ^5.3 || ^6.0 || ^7.0 || ^8.0 || ^9.0
- illuminate/http: ^5.3 || ^6.0 || ^7.0 || ^8.0 || ^9.0
- illuminate/queue: ^5.3 || ^6.0 || ^7.0 || ^8.0 || ^9.0
- illuminate/view: ^5.3 || ^6.0 || ^7.0 || ^8.0 || ^9.0
- dev-master
- v0.0.66
- v0.0.65
- v0.0.64
- v0.0.63
- v0.0.62
- v0.0.61
- v0.0.60
- v0.0.59
- v0.0.58
- v0.0.57
- v0.0.56
- v0.0.55
- v0.0.54
- v0.0.53
- v0.0.52
- v0.0.51
- v0.0.50
- v0.0.49
- v0.0.48
- v0.0.47
- v0.0.46
- v0.0.45
- v0.0.44
- v0.0.43
- v0.0.42
- v0.0.41
- v0.0.40
- v0.0.39
- v0.0.38
- v0.0.37
- v0.0.36
- v0.0.35
- v0.0.34
- v0.0.33
- v0.0.32
- v0.0.31
- v0.0.30
- v0.0.29
- v0.0.28
- v0.0.27
- v0.0.25
- v0.0.24
- v0.0.23
- v0.0.22
- v0.0.21
- v0.0.20
- v0.0.19
- v0.0.18
- v0.0.17
- v0.0.16
- v0.0.15
- v0.0.14
- v0.0.13
- v0.0.12
- v0.0.11
- v0.0.10
- v0.0.9
- v0.0.8
- v0.0.7
- v0.0.6
- v0.0.5
- v0.0.4
- v0.0.3
- v0.0.2
- v0.0.1
- dev-fix_chained_queue_validation
- dev-chained_queue_by_request_params
- dev-add_config_on_queue_config
- dev-added_option_to_avoid_overlapping
- dev-added_server_name_filter
- dev-fix_lock
- dev-laravel54
This package is auto-updated.
Last update: 2024-09-19 01:07:44 UTC
README
Laravel 队列管理器,用于管理队列进程工作进程。
它使用 Supervisor 作为进程控制系统。
它还内置了一个调度系统。
安装
Composer
$ composer require pierophp/laravel-queue-manager
发布
$ php artisan vendor:publish --provider="LaravelQueueManager\Providers\LaravelQueueManagerServiceProvider"
运行迁移
如果你有低于 5.7 的 MySQL 版本,请在迁移中将字段 "schedule_config" 从 "json" 改为 "text"。
$ php artisan migrate
添加提供者
你需要在 config/app.php 文件中添加提供者
LaravelQueueManager\Providers\LaravelQueueManagerServiceProvider::class,
配置
生成作业
你需要生成一个扩展 LaravelQueueManager\AbstractJob 的类。
需要实现 2 个方法
分发新作业
你需要创建一个你作业的新实例并调用 dispatch() 方法。
或使用 CLI
$ php artisan queue-manager:generate-queue queue_name
你也可以设置可选参数
$ php artisan queue-manager:generate-queue queue_name foo=test,bar=test
数据库
为了作业能正确工作,需要在 queue_config 表中生成一行。
配置字段示例
{
"nextQueues":{
"onError":[
{
"url":"url/test",
"data":{
"param":value
},
"name":"QUEUE_NAME",
"method":"POST",
"service":"SERVICE",
"delay_seconds":1
},
{
"url":"url/test",
"data":{
"param":value
},
"name":"QUEUE_NAME",
"method":"GET",
"service":"SERVICE",
"delay_seconds":1
}
],
"onSuccess":[
{
"url":"url/test",
"data":{
"param":value
},
"name":"QUEUE_NAME",
"method":"POST",
"service":"SERVICE",
"delay_seconds":1
}
]
}
}
配置
在 queue_manager.php 配置文件中,你可以进行配置
显示所有可用的作业
$ php artisan queue-manager:show-jobs
获取错误事件
你需要在 AppServiceProvider 中添加并按你的喜好进行记录
$this->app['events']->listen(\LaravelQueueManager\Events\ScheduleError::class, function(\LaravelQueueManager\Events\ScheduleError $error){ // my code }); $this->app['events']->listen(\LaravelQueueManager\Events\DispatchQueueError::class, function(\LaravelQueueManager\Events\DispatchQueueError $error){ // my code });
部署
Supervisor 配置
你需要配置一个 cron,作为 root 每分钟运行一次以生成 supervisor 配置
$ php artisan queue-manager:generate-config
调度
你需要配置一个 cron,每分钟运行一次以生成调度器
$ php artisan schedule:run
队列重启
每次你更改 PHP 代码时,都需要重启队列。将此放在你的部署脚本中。
$ php artisan queue:restart
API 模式
介绍
为了轻松扩展你的作业机器,你可以以 API 模式运行队列。API 更容易应用自动扩展。
配置
在你的路由配置文件中添加
$api->post('queue/process', 'LaravelQueueManager\Http\Controllers\QueueController@process');
在 "queue_manager.php" 配置文件中编辑 execute_as_api 和 api_url 选项。