New Release #4

Merged
th.guenther merged 5 commits from dev-4.3.0 into main 2026-05-23 19:28:38 +02:00
3 changed files with 12 additions and 7 deletions
Showing only changes of commit 998a799c3a - Show all commits
+2 -1
View File
@@ -3,6 +3,7 @@
namespace App\Models; namespace App\Models;
use App\Scopes\CommonModel; use App\Scopes\CommonModel;
use Illuminate\Database\Eloquent\Casts\AsArrayObject;
class CronTask extends CommonModel class CronTask extends CommonModel
{ {
@@ -11,6 +12,6 @@ class CronTask extends CommonModel
protected $dates = ['last_run']; protected $dates = ['last_run'];
protected $casts = [ protected $casts = [
'last_run' => 'datetime', 'last_run' => AsArrayObject::class,
]; ];
} }
+9 -6
View File
@@ -17,7 +17,6 @@ class CronTaskHandleProvider extends CommonController
$now = Carbon::now(); $now = Carbon::now();
$tenants = Tenant::where('has_active_instance', true)->get(); $tenants = Tenant::where('has_active_instance', true)->get();
foreach ($tenants as $tenant) { foreach ($tenants as $tenant) {
app()->instance('tenant', $tenant); app()->instance('tenant', $tenant);
$this->runTenantTasks($tenant, $now); $this->runTenantTasks($tenant, $now);
@@ -31,7 +30,6 @@ class CronTaskHandleProvider extends CommonController
private function runTenantTasks(Tenant $tenant, Carbon $now) { private function runTenantTasks(Tenant $tenant, Carbon $now) {
$tasks = CronTask::all(); $tasks = CronTask::all();
foreach ($tasks as $task) { foreach ($tasks as $task) {
// --- Every-Time Tasks --- // --- Every-Time Tasks ---
@@ -41,11 +39,12 @@ class CronTaskHandleProvider extends CommonController
// --- Daily Tasks --- // --- Daily Tasks ---
if ($task->execution_type === CronTaskType::CRON_TASK_TYPE_DAILY) { if ($task->execution_type === CronTaskType::CRON_TASK_TYPE_DAILY) {
$tenantLastRun = $task->last_run?->get($tenant->slug);
$scheduledTime = \DateTime::createFromFormat('Y-m-d H:i:s', date('Y-m-d ') . $task->schedule_time); $scheduledTime = \DateTime::createFromFormat('Y-m-d H:i:s', date('Y-m-d ') . $task->schedule_time);
$now = Carbon::now(); $now = Carbon::now();
$alreadyRunToday = $tenantLastRun == null ? true : $tenantLastRun->isToday() ?? false;
$alreadyRunToday = $task->last_run?->isToday() ?? false;
if (!$alreadyRunToday && $now >= $scheduledTime) { if (!$alreadyRunToday && $now >= $scheduledTime) {
$this->runTask($task); $this->runTask($task);
@@ -59,14 +58,18 @@ class CronTaskHandleProvider extends CommonController
$logger = $this->taskLogger($task->name, app('tenant')); $logger = $this->taskLogger($task->name, app('tenant'));
app()->instance('taskLogger', $logger); app()->instance('taskLogger', $logger);
$taskClass = "\\App\\Tasks\\" . $task->name; $taskClass = "\\App\\Tasks\\" . $task->name;
if (class_exists($taskClass)) { if (class_exists($taskClass)) {
$instance = new $taskClass(); $instance = new $taskClass();
$instance->handle(); $instance->handle();
$lastRun = $task->last_run;
if ($lastRun === null) {
$lastRun = [];
}
$lastRun[app('tenant')->slug] = now();
// Update last_run // Update last_run
$task->last_run = now(); $task->last_run = $lastRun;
$task->save(); $task->save();
} }
} }
+1
View File
@@ -12,6 +12,7 @@ class CloseEvent implements CronTask {
$eventRepository = new EventRepository(); $eventRepository = new EventRepository();
/** @var Event $event */ /** @var Event $event */
foreach ($eventRepository->getAvailable(false) as $event) { foreach ($eventRepository->getAvailable(false) as $event) {
echo $event->id . $event->tenant .'<br>';
if ($event->registration_final_end <= $now ) { if ($event->registration_final_end <= $now ) {
$event->registration_allowed = false; $event->registration_allowed = false;
$event->save(); $event->save();