У нас есть сервер Celery/RabbitMQ на базе Windows, который выполняет длительные задачи python вне процесса для нашего веб-приложения.
Что это значит, например, взять CSV-файл и обработать каждую строку. Для каждой строки он записывает одну или несколько записей в нашей базе данных.RabbitMQ Сообщения в очереди продолжают расти
Кажется, что все в порядке, я вижу, что записи записываются рабочими процессами. Однако, когда я проверяю сервер rabbitMQ с помощью плагина управления (средство управления веб-интерфейсом), я вижу, что сообщения в очереди увеличиваются, а не возвращаются.
Под соединениями я вижу 116 подключений, около 10-15 на виртуальный хост, все «работает», но когда я нажимаю, большинство из них имеют «простоя» в качестве состояния. Я также интересно, почему эти связи все еще открыты, и если есть что-то мне нужно изменить, чтобы сделать их закрыть себя:
«Очереди» Under можно увидеть более 6200 предметов с государством «простаивает» , и не уменьшается.
Так конкретно я прошу, если это нормальная статистика, или если я должен беспокоиться о Очереди растут, но не возвращаются вниз и постоянные соединения, которые, кажется, не закрывать ...
Другие, чем довольно краткая помощь внутри инструмента управления, я не могу найти никакой информации о том, что означают эти статистические данные, и если они хорошие или плохие.
Я также хотел бы знать, почему сообщения все еще видны в очередях и почему они не удаляются, поскольку задачи кажутся завершенными.
Любая помощь приветствуется.
Вы отправляете Ack обратно, чтобы подтвердить, что сообщение обработано? Пока соединения могут остаться, я ожидаю, что сообщения в очереди упадут. –
Привет @DavinTryon. Задачи обрабатываются Celery, что позволяет нам просто украсить функцию Python с помощью @@ celery.task, я не знаю, как сельдерей обрабатывает подтверждения внутри. Тем не менее, когда я запускаю rabbitmqctl list_consumers, я получаю потребитель, у которого подтверждение подтверждается логическим значением False. –
@DavinTryon; кажется, что по умолчанию сельдерей должен признать задачу, как только работник ее подбирает: http://celery.readthedocs.org/en/latest/userguide/tasks.html –