mirror of
https://github.com/devcode-it/openstamanager.git
synced 2025-02-02 17:07:01 +01:00
Aggiornamento minore tasks
This commit is contained in:
parent
bd7ab2a3a0
commit
5d71e62834
9
cron.php
9
cron.php
@ -59,7 +59,7 @@ $slot_duration = 5;
|
||||
// Controllo sull'ultima esecuzione
|
||||
$data = $data ? new Carbon($data) : null;
|
||||
$minimo_esecuzione = (new Carbon())->addMinutes($slot_duration * 5);
|
||||
if (!empty($data) && $minimo_esecuzione->greaterThanOrEqualTo($data)) {
|
||||
if (!empty($data) && $minimo_esecuzione->lessThan($data)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -94,6 +94,7 @@ while (true) {
|
||||
|
||||
// Calcolo del primo slot disponibile per l'esecuzione successiva
|
||||
$inizio_iterazione = new Carbon();
|
||||
$inizio_programmato_iterazione = $slot_minimo->copy();
|
||||
$slot_minimo = $inizio_iterazione->copy()->startOfHour();
|
||||
while ($inizio_iterazione->greaterThanOrEqualTo($slot_minimo)) {
|
||||
$slot_minimo->addMinutes($slot_duration);
|
||||
@ -109,13 +110,17 @@ while (true) {
|
||||
$data_successiva = Carbon::instance($cron->getNextRunDate($adesso));
|
||||
|
||||
// Esecuzione diretta solo nel caso in cui sia prevista
|
||||
if ($cron->isDue($inizio_iterazione) || $cron->isDue($adesso)) {
|
||||
if (!empty($task->next_execution_at) && $task->next_execution_at->greaterThanOrEqualTo($inizio_iterazione) && $task->next_execution_at->lessThanOrEqualTo($adesso)) {
|
||||
// Registrazione dell'esecuzione nei log
|
||||
$logger->info($task->name.': '.$task->expression);
|
||||
|
||||
$task->execute();
|
||||
}
|
||||
|
||||
// Salvataggio della data per l'esecuzione susccessiva
|
||||
$task->next_execution_at = $data_successiva;
|
||||
$task->save();
|
||||
|
||||
// Calcolo dello successivo slot
|
||||
if ($data_successiva->lessThan($slot_minimo)) {
|
||||
$slot_minimo = $data_successiva;
|
||||
|
@ -13,6 +13,7 @@ class Task extends Model
|
||||
protected $table = 'zz_tasks';
|
||||
|
||||
protected $dates = [
|
||||
'next_execution_at',
|
||||
'last_executed_at',
|
||||
];
|
||||
|
||||
|
@ -4,6 +4,7 @@ CREATE TABLE IF NOT EXISTS `zz_tasks` (
|
||||
`name` VARCHAR(255) NOT NULL,
|
||||
`class` TEXT NOT NULL,
|
||||
`expression` VARCHAR(255) NOT NULL,
|
||||
`next_execution_at` timestamp NULL,
|
||||
`last_executed_at` timestamp NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB;
|
||||
|
Loading…
x
Reference in New Issue
Block a user