Check Status Of An Scheduler Task Before Adding And Running Another Task

- 1 answer

I have a question about the task scheduling in laravel framework. I already have defined the commands currency:update and currency:archive in the list of console commands. Now, I want to run these two commands in the schedule method but with the following condition:

if this is a time to run the currency:archive command, don't run the other command currency:update until the previous command (i.e. currency:archive) ends; otherwise run the currency:update command.

This is my current code in schedule method:



How should I modify it?




In the laravel schedule docs the following two features are mentioned:

  1. Truth test contraints docs
$schedule->command('emails:send')->daily()->skip(function () {
    return true;
  1. Task hooks docs
         ->before(function () {
             // Task is about to start...
         ->after(function () {
             // Task is complete...

You could consider setting a variable like $achriveCommandIsRunning to true in the before() closure. In the skip() closure you can return $archiveCommandIsRunning; and in the after() closure you can set the variable back to false again.