New

Just launched: Vueblocks, a brand-new search engine for Vue packages! Explore Vueblocks →

tusimo/laravel-delay-queue

trigger for later fire redis queue job when app shutdown
9,992 1
Install
composer require tusimo/laravel-delay-queue
Latest Version:v1.0
Laravel:5
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

ipalaus/redisqueue-gui

A GUI interface for Illuminate's RedisQueue driver.

1 6
pascallieverse/laravel-dawn

Rust-powered Laravel queue manager dashboard

1,486 0
yangusik/laravel-balanced-queue

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

23,643 89
abdulmajeed-jamaan/laravel-queue-promoter

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

2,404 0
ctsoftwarellc/laravel-mail-throttle

Distributed rate limiting for Laravel mail across multiple queue workers

2,234 2

Version History

Version Released Laravel License
v1.0 ^5.2.0 MIT
v0.1.2 ^5.2.0 MIT
v0.1.1 ^5.2.0 MIT
v0.1 ^5.2.0 MIT