Xboard/app/Providers/OctaneSchedulerProvider.php
xboard 0f43fff242
Some checks are pending
Docker Build and Publish / build (push) Waiting to run
feat: new xboard
2025-01-21 14:57:54 +08:00

34 lines
792 B
PHP

<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Laravel\Octane\Facades\Octane;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Artisan;
class OctaneSchedulerProvider extends ServiceProvider
{
public function register(): void
{
}
public function boot(): void
{
if ($this->app->runningInConsole()) {
return;
}
// 每半钟执行一次调度检查
Octane::tick('scheduler', function () {
$lock = Cache::lock('scheduler-lock', 30);
if ($lock->get()) {
try {
Artisan::call('schedule:run');
} finally {
$lock->release();
}
}
})->seconds(30);
}
}