tusimo/laravel-delay-queue

trigger for later fire redis queue job when app shutdown
9,753 1
Install
composer require tusimo/laravel-delay-queue
Latest Version:v1.0
License:MIT
Last Updated:Mar 23, 2018
Links: GitHub  ·  Packagist
Maintainer: tusimo

LaravelDelayQueue

安装

  1. 修改composer.json
{
    "require":
    {
        "tusimo/laravel-delay-queue": "dev-master"
    }
}
  1. 修改config/app.php
<?php
return [
    'providers' => [
        /*
         * Package Service Providers...
         */
        Tusimo\DelayedQueue\Provider\DelayedQueueServiceProvider::class,
    ]
];
  1. 修改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发送到队里。

Related Packages

masrodjie/codeigniter4-queue

The Illuminate Queue package for CodeIgniter 4

260 15
yangusik/laravel-balanced-queue

Laravel queue management with load balancing between partitions (user groups)

19,486 87
ipalaus/redisqueue-gui

A GUI interface for Illuminate's RedisQueue driver.

1 6
rybakit/phive-queue

$queue->push('I can be popped off after', '10 minutes');

42,112 164
abdulmajeed-jamaan/laravel-queue-promoter

A queue:work-style daemon that promotes due delayed and expired reserved jobs on...

1,453 0