getRedis(); $key = $this->getSyncKey(); $questionIds = $redis->sRandMember($key, 1000); if (!$questionIds) return; $questionRepo = new QuestionRepo(); $questions = $questionRepo->findByIds($questionIds); if ($questions->count() == 0) return; $service = new QuestionScoreService(); foreach ($questions as $question) { $service->handle($question); } $redis->sRem($key, ...$questionIds); } protected function getSyncKey() { $sync = new QuestionScoreSync(); return $sync->getSyncKey(); } }