How to Delete Queued Jobs in Laravel Horizon

Posted on

I’ve been struggle to delete all queue jobs in Laravel Horizon 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 :


Which comes from here this link.

$ redis-cli> FLUSHDB
OK> exit

Then the result in is as follow and all the queued jobs will be cleared out easily:
Image for post
Image for post
Option-3: redis

use redis in a controller like:

use Redis;

And then in an action put this:


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:
Image for post
Image for post

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


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:

Thanks to @edilsoncichon for hist nice comment and introducing this option.

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

So no code writing is needed! 😉


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

php artisan queue:flush