Laravel delete queued jobs using redis horizon artisan command

Panjeh
Panjeh
Feb 26 · 4 min read

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:

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.

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:

And then in an action put this:

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

Option-5: redis

Make an artisan command by:

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:

At the end, run the command:

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

Option-5: redis + tinker

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

In the terminal you can use this command :

Then do this:

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 :


Thank you for reading! If you enjoyed this article:

Clap it ! Share it! Follow Me in Medium!

Also I’d like to hear your opinion on this article. If you have any doubt, question or suggestion please leave a comment below.

Have a very wonderful day!

Previous Stories You will Love:

Panjeh

Written by

Panjeh

Web geek, Self-taught full-stack web developer, Learning Laravel, Vuejs, UX/UI design, Physicist PhD