作者 Your Name
@@ -82,12 +82,22 @@ class SyncSubmitTask extends Command @@ -82,12 +82,22 @@ class SyncSubmitTask extends Command
82 public function getTaskId() 82 public function getTaskId()
83 { 83 {
84 $task_id = Redis::rpop('sync_submit_task'); 84 $task_id = Redis::rpop('sync_submit_task');
  85 + $lockKey = 'lock_sync_submit_task';
85 if (empty($task_id)) { 86 if (empty($task_id)) {
  87 + // 获取锁
  88 + if (Redis::setnx($lockKey, 1)) {
  89 + // 设置锁的过期时间,防止死锁
  90 + Redis::expire($lockKey, 10);
86 $ids = SyncSubmitTaskModel::where('status', 0)->limit(100)->pluck('id'); 91 $ids = SyncSubmitTaskModel::where('status', 0)->limit(100)->pluck('id');
87 foreach ($ids as $id) { 92 foreach ($ids as $id) {
88 Redis::lpush('sync_submit_task', $id); 93 Redis::lpush('sync_submit_task', $id);
89 } 94 }
90 $task_id = Redis::rpop('sync_submit_task'); 95 $task_id = Redis::rpop('sync_submit_task');
  96 + Redis::del($lockKey);
  97 + } else {
  98 + // 未获取到锁
  99 + return '';
  100 + }
91 } 101 }
92 return $task_id; 102 return $task_id;
93 } 103 }
@@ -6,6 +6,7 @@ use App\Enums\Common\Code; @@ -6,6 +6,7 @@ use App\Enums\Common\Code;
6 use App\Http\Controllers\Aside\BaseController; 6 use App\Http\Controllers\Aside\BaseController;
7 use App\Http\Logic\Aside\Domain\DomainInfoLogic; 7 use App\Http\Logic\Aside\Domain\DomainInfoLogic;
8 use App\Http\Requests\Aside\Domain\DomainInfoRequest; 8 use App\Http\Requests\Aside\Domain\DomainInfoRequest;
  9 +use App\Models\Domain\CountryCode;
9 use App\Models\Domain\DomainInfo; 10 use App\Models\Domain\DomainInfo;
10 use App\Models\Project\Project; 11 use App\Models\Project\Project;
11 use Illuminate\Http\JsonResponse; 12 use Illuminate\Http\JsonResponse;
@@ -203,4 +204,17 @@ class DomainInfoController extends BaseController @@ -203,4 +204,17 @@ class DomainInfoController extends BaseController
203 $domainInfoLogic->sslSave(); 204 $domainInfoLogic->sslSave();
204 $this->response('success'); 205 $this->response('success');
205 } 206 }
  207 +
  208 + /**
  209 + * 获取可屏蔽国家列表
  210 + * @author Akun
  211 + * @date 2024/07/01 16:41
  212 + */
  213 + public function getCountryCode()
  214 + {
  215 + $countryModel = new CountryCode();
  216 + $list = $countryModel->list([],'id',['id','c_name'],'asc');
  217 +
  218 + $this->response('success',Code::SUCCESS,$list);
  219 + }
206 } 220 }
  1 +<?php
  2 +
  3 +namespace App\Models\Domain;
  4 +
  5 +use App\Models\Base;
  6 +
  7 +class CountryCode extends Base
  8 +{
  9 + protected $table = 'gl_country_code';
  10 +}
@@ -247,6 +247,7 @@ Route::middleware(['aloginauth'])->group(function () { @@ -247,6 +247,7 @@ Route::middleware(['aloginauth'])->group(function () {
247 Route::any('/del', [Aside\Domain\DomainInfoController::class, 'del'])->name('admin.domain_del'); 247 Route::any('/del', [Aside\Domain\DomainInfoController::class, 'del'])->name('admin.domain_del');
248 Route::any('/setSsl', [Aside\Domain\DomainInfoController::class, 'setSsl'])->name('admin.domain_setSsl'); 248 Route::any('/setSsl', [Aside\Domain\DomainInfoController::class, 'setSsl'])->name('admin.domain_setSsl');
249 Route::any('/log', [Aside\Domain\DomainInfoLogController::class, 'lists'])->name('admin.domain_log_lists'); // 日志 249 Route::any('/log', [Aside\Domain\DomainInfoLogController::class, 'lists'])->name('admin.domain_log_lists'); // 日志
  250 + Route::any('/getCountryCode', [Aside\Domain\DomainInfoController::class, 'getCountryCode'])->name('admin.get_country_code');
250 251
251 }); 252 });
252 //图片操作 253 //图片操作