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