$job 须含 op 字段 */ public static function enqueue(array $job): void { if (!self::enabled()) { return; } if (!isset($job['op']) || !is_string($job['op']) || $job['op'] === '') { return; } $job['v'] = 1; $job['ts'] = time(); $max = self::maxQueueLength(); try { if ($max > 0) { $len = Redis::lLen(self::queueListKey()); if (is_int($len) && $len >= $max) { Redis::rPop(self::queueListKey()); } } Redis::lPush(self::queueListKey(), json_encode($job, JSON_UNESCAPED_UNICODE)); } catch (Throwable) { } } public static function maxQueueLength(): int { $v = config('game_hot_cache.queue_max_length', 50000); $n = filter_var($v, FILTER_VALIDATE_INT); return ($n === false || $n < 0) ? 50000 : $n; } }