Функция Foreach и Sleep для трансляции - PullRequest
0 голосов
/ 24 марта 2020

Основная цель этого вопроса - иметь постоянно работающую систему на сервере для вещания музыки c.

Я хотел бы создать функцию консоли ремесленника, которая будет автоматически запускать трек от своего родителя. игра каждые 32 секунды. К сожалению, функция sleep () блокирует родительский элемент l oop.

Два вопроса (или, может быть, три): как можно предотвратить остановку родительского элемента l oop? Этот метод потребляет слишком много ресурсов? Есть ли лучший способ?

public function fetch($games) {

    foreach ($games as $game) {

        $tracks = Track::inRandomOrder()->where('game_id', $game->id)->limit($game->tracks_number)->get();

        foreach ($tracks as $key => $track) {

             broadcast(new NewTrack($track));

             if($key + 1  == count($tracks)) {
                 $this->fetch($this->games);
             }

             sleep(32);

         }

    }

}

Большое спасибо за ваш отзыв

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...