Я не могу решить одну проблему в центрифуге (сервер веб-сокетов). Я пишу чат, используя этот сервер.
У меня есть один канал, где вся история чата. Все сообщения попадают туда. Бэкэнд (Yii2
) имеет очередь, которая циклически просматривает историю каналов, сохраняет все в MongoDB и отправляет сообщения на правильные каналы. Это выглядит примерно так:
$history = $this->client->history($this->historyChannel);
$this->client->historyRemove($this->historyChannel);
SAVING MESSAGES SCRIPT
............................................................
Но проблема в том, что иногда сообщение не сохраняется. Я понял, что это приходит к $this-> historyChannel
в то время, когда я уже сохранил историю в переменную, но еще не удалил ее.
Как мне придумать механизм, который будет сохранять сообщения на 100% , Или не удалять все сообщения.