Add separate cron runner that doesn't use proc_open (#1405)
* Add alternative to using the artisan schedule runner * StyleCI fixes * Add additional cron time periods * Style fixes * Typo * Update the web cron to use the new system * Write out JSON for which tasks were run * Rename cron.php to just cron
This commit is contained in:
26
app/Console/Cron/FifteenMinute.php
Normal file
26
app/Console/Cron/FifteenMinute.php
Normal file
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
namespace App\Console\Cron;
|
||||
|
||||
use App\Contracts\CronCommand;
|
||||
use App\Events\CronFifteenMinute;
|
||||
|
||||
/**
|
||||
* The actual cron tasks are in app/Cron
|
||||
*/
|
||||
class FifteenMinute extends CronCommand
|
||||
{
|
||||
protected $signature = 'cron:fifteen';
|
||||
protected $description = 'Run the 15 minute cron tasks';
|
||||
protected $schedule;
|
||||
|
||||
public function handle(): void
|
||||
{
|
||||
$this->callEvent();
|
||||
}
|
||||
|
||||
public function callEvent()
|
||||
{
|
||||
event(new CronFifteenMinute());
|
||||
}
|
||||
}
|
||||
29
app/Console/Cron/FiveMinute.php
Normal file
29
app/Console/Cron/FiveMinute.php
Normal file
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
namespace App\Console\Cron;
|
||||
|
||||
use App\Contracts\CronCommand;
|
||||
use App\Events\CronFiveMinute;
|
||||
|
||||
/**
|
||||
* This just calls the CronNightly event, so all of the
|
||||
* listeners, etc can just be called to run those tasks
|
||||
*
|
||||
* The actual cron tasks are in app/Cron
|
||||
*/
|
||||
class FiveMinute extends CronCommand
|
||||
{
|
||||
protected $signature = 'cron:five';
|
||||
protected $description = 'Run the 5 minute cron tasks';
|
||||
protected $schedule;
|
||||
|
||||
public function handle(): void
|
||||
{
|
||||
$this->callEvent();
|
||||
}
|
||||
|
||||
public function callEvent()
|
||||
{
|
||||
event(new CronFiveMinute());
|
||||
}
|
||||
}
|
||||
@@ -2,14 +2,14 @@
|
||||
|
||||
namespace App\Console\Cron;
|
||||
|
||||
use App\Contracts\Command;
|
||||
use App\Contracts\CronCommand;
|
||||
use App\Events\CronHourly;
|
||||
|
||||
/**
|
||||
* This just calls the CronHourly event, so all of the
|
||||
* listeners, etc can just be called to run those tasks
|
||||
*/
|
||||
class Hourly extends Command
|
||||
class Hourly extends CronCommand
|
||||
{
|
||||
protected $signature = 'cron:hourly';
|
||||
protected $description = 'Run the hourly cron tasks';
|
||||
@@ -17,7 +17,11 @@ class Hourly extends Command
|
||||
|
||||
public function handle(): void
|
||||
{
|
||||
$this->redirectLoggingToFile('cron');
|
||||
$this->callEvent();
|
||||
}
|
||||
|
||||
public function callEvent()
|
||||
{
|
||||
event(new CronHourly());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,14 +2,14 @@
|
||||
|
||||
namespace App\Console\Cron;
|
||||
|
||||
use App\Contracts\Command;
|
||||
use App\Contracts\CronCommand;
|
||||
use Illuminate\Support\Facades\Artisan;
|
||||
|
||||
/**
|
||||
* This just calls the CronHourly event, so all of the
|
||||
* listeners, etc can just be called to run those tasks
|
||||
*/
|
||||
class JobQueue extends Command
|
||||
class JobQueue extends CronCommand
|
||||
{
|
||||
protected $signature = 'cron:queue';
|
||||
protected $description = 'Run the cron queue tasks';
|
||||
@@ -17,9 +17,16 @@ class JobQueue extends Command
|
||||
|
||||
public function handle(): void
|
||||
{
|
||||
$this->redirectLoggingToFile('cron');
|
||||
Artisan::call('queue:cron');
|
||||
$this->callEvent();
|
||||
|
||||
$this->info(Artisan::output());
|
||||
$queueOutput = trim(Artisan::output());
|
||||
if (!empty($queueOutput)) {
|
||||
$this->info($queueOutput);
|
||||
}
|
||||
}
|
||||
|
||||
public function callEvent()
|
||||
{
|
||||
Artisan::call('queue:cron');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
namespace App\Console\Cron;
|
||||
|
||||
use App\Contracts\Command;
|
||||
use App\Contracts\CronCommand;
|
||||
use App\Events\CronMonthly;
|
||||
|
||||
/**
|
||||
@@ -11,7 +11,7 @@ use App\Events\CronMonthly;
|
||||
*
|
||||
* The actual cron tasks are in app/Cron
|
||||
*/
|
||||
class Monthly extends Command
|
||||
class Monthly extends CronCommand
|
||||
{
|
||||
protected $signature = 'cron:monthly';
|
||||
protected $description = 'Run the monthly cron tasks';
|
||||
@@ -19,7 +19,11 @@ class Monthly extends Command
|
||||
|
||||
public function handle(): void
|
||||
{
|
||||
$this->redirectLoggingToFile('cron');
|
||||
$this->callEvent();
|
||||
}
|
||||
|
||||
public function callEvent()
|
||||
{
|
||||
event(new CronMonthly());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
namespace App\Console\Cron;
|
||||
|
||||
use App\Contracts\Command;
|
||||
use App\Contracts\CronCommand;
|
||||
use App\Events\CronNightly;
|
||||
|
||||
/**
|
||||
@@ -11,7 +11,7 @@ use App\Events\CronNightly;
|
||||
*
|
||||
* The actual cron tasks are in app/Cron
|
||||
*/
|
||||
class Nightly extends Command
|
||||
class Nightly extends CronCommand
|
||||
{
|
||||
protected $signature = 'cron:nightly';
|
||||
protected $description = 'Run the nightly cron tasks';
|
||||
@@ -19,7 +19,11 @@ class Nightly extends Command
|
||||
|
||||
public function handle(): void
|
||||
{
|
||||
$this->redirectLoggingToFile('cron');
|
||||
$this->callEvent();
|
||||
}
|
||||
|
||||
public function callEvent()
|
||||
{
|
||||
event(new CronNightly());
|
||||
}
|
||||
}
|
||||
|
||||
26
app/Console/Cron/ThirtyMinute.php
Normal file
26
app/Console/Cron/ThirtyMinute.php
Normal file
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
namespace App\Console\Cron;
|
||||
|
||||
use App\Contracts\CronCommand;
|
||||
use App\Events\CronThirtyMinute;
|
||||
|
||||
/**
|
||||
* The actual cron tasks are in app/Cron
|
||||
*/
|
||||
class ThirtyMinute extends CronCommand
|
||||
{
|
||||
protected $signature = 'cron:thirty';
|
||||
protected $description = 'Run the 30 minute cron tasks';
|
||||
protected $schedule;
|
||||
|
||||
public function handle(): void
|
||||
{
|
||||
$this->callEvent();
|
||||
}
|
||||
|
||||
public function callEvent()
|
||||
{
|
||||
event(new CronThirtyMinute());
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
namespace App\Console\Cron;
|
||||
|
||||
use App\Contracts\Command;
|
||||
use App\Contracts\CronCommand;
|
||||
use App\Events\CronWeekly;
|
||||
|
||||
/**
|
||||
@@ -11,7 +11,7 @@ use App\Events\CronWeekly;
|
||||
*
|
||||
* The actual cron tasks are in app/Cron
|
||||
*/
|
||||
class Weekly extends Command
|
||||
class Weekly extends CronCommand
|
||||
{
|
||||
protected $signature = 'cron:weekly';
|
||||
protected $description = 'Run the weekly cron tasks';
|
||||
@@ -19,7 +19,11 @@ class Weekly extends Command
|
||||
|
||||
public function handle(): void
|
||||
{
|
||||
$this->redirectLoggingToFile('cron');
|
||||
$this->callEvent();
|
||||
}
|
||||
|
||||
public function callEvent()
|
||||
{
|
||||
event(new CronWeekly());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user