tusimo/laravel-delay-queue
最新稳定版本:v1.0
Composer 安装命令:
composer require tusimo/laravel-delay-queue
包简介
trigger for later fire redis queue job when app shutdown
关键字:
README 文档
README
安装
- 修改composer.json
{
"require":
{
"tusimo/laravel-delay-queue": "dev-master"
}
}
- 修改config/app.php
<?php return [ 'providers' => [ /* * Package Service Providers... */ Tusimo\DelayedQueue\Provider\DelayedQueueServiceProvider::class, ] ];
- 修改config/queue.php.增加delay参数为true即可,其他connection也可使用delay
'redis' => [ 'driver' => 'redis', 'connection' => 'default', 'queue' => 'default', 'retry_after' => 60, 'delay' => true ]
使用
当使用event异步处理,job时不会立即发送到后台处理 默认会在register_shutdown_function回调时发送所有队列任务和job.
如果在发生异常时,不希望触发后台处理,可以在以下地方将本次请求中所有产生的异步任务清空。
public function report(Exception $exception) { //清空已经保存的队列任务 DelayQueueContainer::flushQueueJobs(); //获取已保存的队列任务 DelayQueueContainer::getQueueJobs(); //立即将已保存的队列任务放入队列后台 DelayQueueContainer::fireQueueJobs() if ($this->shouldntReport($exception)) { return; } app(ErrorReporter::class)->report($exception); }
注意
默认CLI模式会在错误产生的时候自动删除已经发出的job保证只有在运行成功后才会触发job到队列。非CLI模式没有处理,需要自己在类似删除report函数里清空。
如果在错误发生时,也需要某个job进入队列执行,请手动在代码里运行 php DelayQueueContainer::fireQueueJobs();,此时会立即将已保存的job发送到队里。
统计信息
- 总下载量: 8.56k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 3
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2018-01-24