Laravel delete queued jobs using redis horizon artisan command

The question is how to delete all jobs which are queued in Laravel when you are using redis as the Queue driver.

To do this there are some options:

Option-1: general

Using the laravel-queue-clear package which is developed by Craig Morris that provides a useful tool to delete all kinds of queued jobs by an artisan command. This package is comprehensive and is not only for redis.

For wiping your queues clear you need to run this:

php artisan queue:clear [connection] [queue]

where [connection] is :

the name of a connection in your config/queue.php

and [queue] is:

the name of the queue / pipe you want to clear

Option-2: redis

In the terminal you can use this command :

FLUSHDB

Which comes from here this link.

$ redis-cli
127.0.0.1:6379> FLUSHDB
OK
127.0.0.1:6379> exit

Then the result in Laravel.dev/horizon is as follow and all the queued jobs will be cleared out easily:

Option-3: redis

use redis in a controller like:

use Redis;

And then in an action put this:

Redis::command('flushdb');

And then trigger that action through a route::get();

Option-5: redis

Make an artisan command by:

php artisan make:command FlushRedis --command=flush:redis

Then register it in the Kernel.php file in app/Console as follows:

Then in the handle() method of the FlushRedis.php file put this:

Redis::command('flushdb');

At the end, run the command:

php artisan flush:redis

It’s done! All the queued jobs will be wiped out.

Option-5: redis + tinker

In the terminal you can use this command :

php artisan tinker;

Then do this:

>>> use Redis;
>>> Redis :: command (‘flushdb’);

So no code writing is needed! ?

Note:

Remind that Laravel out of the box has an artisan command to delete all of your failed jobs :

php artisan queue:flush