From 6aadce79dad192f7e9d433b04ab8128b9a93091f Mon Sep 17 00:00:00 2001 From: xiaomlove Date: Sun, 4 May 2025 15:52:08 +0700 Subject: [PATCH] improve horizon --- .docker/php/entrypoint.sh | 2 +- app/Http/Controllers/ToolController.php | 11 +---------- app/Jobs/MaintainPluginState.php | 2 +- config/horizon.php | 2 +- include/globalfunctions.php | 8 ++++---- routes/console.php | 3 +++ routes/web.php | 2 -- 7 files changed, 11 insertions(+), 19 deletions(-) diff --git a/.docker/php/entrypoint.sh b/.docker/php/entrypoint.sh index a18c23ef..00b375a5 100644 --- a/.docker/php/entrypoint.sh +++ b/.docker/php/entrypoint.sh @@ -72,7 +72,7 @@ elif [ "$SERVICE_NAME" = "queue" ]; then while true; do if [ -f "$ENV_FILE" ] && [ -d "$VENDOR_DIR" ]; then echo_success "[Queue] Run queue:work at $(date '+%Y-%m-%d %H:%M:%S')"; - php artisan queue:horizon; + php artisan horizon; else echo_info "[Queue] .env or vendor not exists,wait 5 seconds ..."; sleep 5; diff --git a/app/Http/Controllers/ToolController.php b/app/Http/Controllers/ToolController.php index 8281e8ee..ab2e765e 100644 --- a/app/Http/Controllers/ToolController.php +++ b/app/Http/Controllers/ToolController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers; +use App\Jobs\SettleClaim; use App\Models\PluginStore; use App\Models\Setting; use App\Repositories\TokenRepository; @@ -31,16 +32,6 @@ class ToolController extends Controller return $this->success($result); } - - public function test(Request $request) - { - $result = ['id' => 1]; - $result['permissions'] = TokenRepository::listUserTokenPermissionAllowed(); -// $result['permissions'] = Setting::getPermissionUserTokenAllowed(); - $resource = new JsonResource($result); - return $this->success($resource); - } - public function error(Request $request) { return view('error', ['error' => $request->query('error')]); diff --git a/app/Jobs/MaintainPluginState.php b/app/Jobs/MaintainPluginState.php index f1d84bc0..bf826f84 100644 --- a/app/Jobs/MaintainPluginState.php +++ b/app/Jobs/MaintainPluginState.php @@ -11,7 +11,7 @@ use Illuminate\Queue\SerializesModels; use Nexus\Database\NexusDB; use Nexus\Plugin\Plugin; -class MaintainPluginState implements ShouldQueue +class MaintainPluginState { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; diff --git a/config/horizon.php b/config/horizon.php index 47b87331..01d1d1e0 100644 --- a/config/horizon.php +++ b/config/horizon.php @@ -183,7 +183,7 @@ return [ 'defaults' => [ 'supervisor-1' => [ 'connection' => 'redis', - 'queue' => ['default'], + 'queue' => ['nexus_queue'], 'balance' => 'auto', 'autoScalingStrategy' => 'time', 'maxProcesses' => 1, diff --git a/include/globalfunctions.php b/include/globalfunctions.php index 0eae5aba..2f083edd 100644 --- a/include/globalfunctions.php +++ b/include/globalfunctions.php @@ -209,9 +209,11 @@ function do_log($log, $level = 'info', $echo = false) } } $backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 2); + $dt = DateTime::createFromFormat('U.u', microtime(true)); + $dt->setTimezone(new DateTimeZone(nexus_env('TIMEZONE', 'UTC'))); $content = sprintf( "[%s] [%s] [%s] [%s] [%s] [%s] %s.%s %s:%s %s%s%s %s%s", - date('Y-m-d H:i:s'), + $dt->format("Y-m-d\TH:i:s.vP"), nexus() ? nexus()->getRequestId() : 'NO_REQUEST_ID', nexus() ? nexus()->getLogSequence() : 0, sprintf('%.3f', microtime(true) - (nexus() ? nexus()->getStartTimestamp() : 0)), @@ -276,9 +278,7 @@ function getLogFile($append = '') $scriptUserInfo = posix_getpwuid(posix_getuid()); $name .= sprintf("-cli-%s", $scriptUserInfo['name']); } - if (IN_NEXUS) { - $name .= "-" . date('Y-m-d'); - } + $name .= "-" . date('Y-m-d'); return $logFiles[$append] = $name . $suffix; } diff --git a/routes/console.php b/routes/console.php index e05f4c9a..56517ced 100644 --- a/routes/console.php +++ b/routes/console.php @@ -2,6 +2,7 @@ use Illuminate\Foundation\Inspiring; use Illuminate\Support\Facades\Artisan; +use Illuminate\Support\Facades\Schedule; /* |-------------------------------------------------------------------------- @@ -17,3 +18,5 @@ use Illuminate\Support\Facades\Artisan; Artisan::command('inspire', function () { $this->comment(Inspiring::quote()); })->purpose('Display an inspiring quote'); + +Schedule::command('horizon:snapshot')->everyFiveMinutes(); diff --git a/routes/web.php b/routes/web.php index 811323b5..4d2e8f0d 100644 --- a/routes/web.php +++ b/routes/web.php @@ -35,8 +35,6 @@ if (!isRunningInConsole()) { } } -Route::get('test', [\App\Http\Controllers\ToolController::class, 'test'])->middleware(['web']); - Route::group(['prefix' => 'oauth'], function () { Route::get("user-info", [\App\Http\Controllers\OauthController::class, 'userInfo'])->name("oauth.user_info")->middleware('auth:api'); Route::get('redirect/{uuid}', [\App\Http\Controllers\OauthController::class, 'redirect']);