dimawar
@dimawar
сисадмин

Проблема с обновлением данных в Symfony и очередью сообщений, как решить?

Имеется проект на Symfony 4 с очередью сообщений RabbitMq.
Consumer запущен и слушает очередь, если пришло сообщение, то запускается команда.
Вот пример кода из одной команды:
/** @var Account $account */
        $account = $this->container->get('doctrine')->getRepository(Account::class)->find($account_id);
        if ($account) {
            echo "account=".$account->getUsername()." active=".$account->getActive().PHP_EOL;
            if ($account->getActive()) {

Проверяется, что аккаунт активен, и дальше выполняется код.
После выполнения кода, должна быть временная задержка, вот так она рассчитывается:
$count_all_account = count($this->container->get('doctrine')->getRepository(Account::class)->findBy(['active' => true]));
        $second = (int)(40 / $count_all_account);

Так вот проблема в том, что если аккаунт стал неактивен, то в первой части кода, метод
$account->getActive()
выдает Истину,
а во второй части кода, где выбирается количество активных аккаунтов, этот аккаунт уже неактивен.
Если перезапустить Consumer, тогда все становится правильно.
Как решить проблему?
Может быть Symfony как-то кеширует эти данные?
  • Вопрос задан
  • 152 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы