Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Chain commands in Laravel Artisan Scheduler?

Suppose I have three commands I want to schedule: 'commandA', 'commandB', and 'commandC'

But I don't want to run 'commandB' until 'commandA' is complete and I don't want to run 'commandC' until 'commandB' is complete.

I know I can schedule each to run every five minutes:

$schedule->command('commandA')->everyFiveMinutes();
$schedule->command('commandB')->everyFiveMinutes();
$schedule->command('commandC')->everyFiveMinutes();

But is it possible to chain them one after the other?

like image 693
wkm Avatar asked Apr 23 '15 13:04

wkm


1 Answers

Use then(Closure $callback) to chain commands:

$schedule->command('commandA')->everyFiveMinutes()->then(function() {
    $this->call('commandB');
    $this->call('commandC');
});
like image 67
Limon Monte Avatar answered Sep 19 '22 17:09

Limon Monte