Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Command "queue:failed-table" is not defined

For some reason, I'm unable to generate a failed jobs table in Lumen 5.2.

I've consulted:

The Lumen 5.2 Docs

The Lumen 5.1 Docs

The Laravel 5.2 Docs

And the only one mentioned generator artisan queue:failed-table simply returns:

[Symfony\Component\Console\Exception\CommandNotFoundException]  
Command "queue:failed-table" is not defined.                    
Did you mean one of these?                                      
    queue:failed                                                
    queue:forget                                                
    queue:flush                                                 
    queue:retry                                                 
    queue:work                                                  
    queue:listen                                                
    queue:restart 

Does anyone have a clue why this may be? The application itself is casting errors due to (well, errors) and not having a failed jobs table to process.

Much obliged!

like image 577
CmdrSharp Avatar asked Jul 08 '16 03:07

CmdrSharp


People also ask

What is queue job in Laravel?

Laravel queues provide a unified API across a variety of different queue backends, such as Beanstalk, Amazon SQS, Redis, or even a relational database. Queues allow you to defer the processing of a time consuming task, such as sending an email, until a later time.

What is Dispatch in Laravel?

Dispatcher is a Laravel artisan command scheduling tool used to schedule artisan commands within your project so you don't need to touch the crontab. This sounds brilliant for shared hosts and on-premise apps.

What are queue workers and why should I restart them?

Remember, queue workers, are long-lived processes and store the booted application state in memory. As a result, they will not notice changes in your code base after they have been started. So, during your deployment process, be sure to restart your queue workers.

What is queue in Laravel?

Laravel queues provide a unified queueing API across a variety of different queue backends, such as Amazon SQS, Redis, or even a relational database. Laravel's queue configuration options are stored in your application's config/queue.phpconfiguration file.

What is dispatching to a particular queue?

Dispatching To A Particular Queue By pushing jobs to different queues, you may "categorize" your queued jobs and even prioritize how many workers you assign to various queues. Keep in mind, this does not push jobs to different queue "connections" as defined by your queue configuration file, but only to specific queues within a single connection.

What is the difference between a work queue and a job?

The first concept is a work queue. A queue is simply a list of items where you put items into the queue and remove them in the same order (First In/First Out or FIFO). Work queues provide a central location for us to store the units of work we want to be done. The second concept is a job.


1 Answers

I believe that CmdrSharp is correct that Lumen does not include the artisan queue:failed-table command.

In case it's helpful, here are the steps that I took to create a failed_jobs table myself:

1) Create a migration for creating the failed_jobs table. The generated migration will be placed in the /database/migrations folder.

php artisan make:migration create_failed_jobs_table --table=failed_jobs

2) Edit the migration so that it looks like this:

<?php

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateFailedJobsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('failed_jobs', function (Blueprint $table) {
            $table->increments('id');
            $table->text('connection');
            $table->text('queue');
            $table->longText('payload');
            $table->timestamp('failed_at')->useCurrent();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::drop('failed_jobs');
    }
}

3) Run the migration to create the table

php artisan migrate

Good luck!

like image 194
clone45 Avatar answered Sep 30 '22 09:09

clone45