Voltar para TechTips
TechTips > Backend > Laravel
dica

Criar Schedules

15/07/2026 4 visualizações

Crie o arquivo que executará a função, exemplo:

app\Console\Commands\UpdateOverdueOrders.php

<?php
namespace App\Console\Commands;

use App\Models\Order;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Log;

class UpdateOverdueOrders extends Command
{
    protected $signature = 'orders:update-overdue';
    protected $description = 'Atualiza status de pendente para atrasado em ordens vencidas';

    public function handle()
    {
        $updated = Order::where('status', 'pendente')
            ->where('due_date', '<', now()->subDays(2))
            ->update(['status' => 'atrasado']);

            if ($updated > 0) {
                Log::info("{$updated} pagamentos atualizados para atrasado.");
            } else {
                Log::info("Nenhum pagamento em atraso adicionado.");
            }
    }
}

No arquivo routes\console.php

<?php
use Illuminate\Foundation\Inspiring;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\Schedule;

Artisan::command('inspire', function () {

    $this->comment(Inspiring::quote());

})->purpose('Display an inspiring quote')->hourly();

Schedule::command('orders:update-overdue')->dailyAt('11:00'); //Irá rodar o comando todo dia as 11:00 Horário do laravel!
//Schedule::command('orders:update-overdue')->everyMinute(); // TESTE DO CRONJOB - COMENTAR

#laravel #schedules

Galeria de Imagens

Compartilhe esta dica

Envie esta dica diretamente para o e-mail de um colega desenvolvedor.