Symfony Beanstalkd потерял соединение оракул

У меня проблема с beanstalkd в проекте symfony (3.4).

У меня есть команда symfony, используемая для анализа информации, анализатор некоторое время верен, чтобы команда работала 24/7.

$pheanstalk = new Pheanstalk('127.0.0.1');

while (true) {
   $pheanstalk->watch($worker);
   $queue = $pheanstalk->statsTube($worker);
   if ($queue['current-jobs-ready'] > 0) {
      analyseInformations();
   else {
      //get the most charged worker...
   }

Проблема в том, что через X минут, 5, 10 или 15 команда возвращает исключение: ORA-03135 Connection Lost

Dba сказал, что проблема связана с проектом symfony, а не с базой данных oracle, я что-то пропустил с подключением beanstalkd?

Beanstalkd имеет тайм-аут подключения к базе данных? Что-нибудь сделать с подключением к пулу symfony?

В проекте мы используем doctrine dbal для запроса к базе данных.

Сообщение об исключении:

111:29:01 ERROR [console] Error thrown while running command "analyser". Message: "An exception occurred while executing 'SELECT XXX FROM XXX:

ORA-03113: end-of-file on communication channel ID de processus : 20624 ID de session : 154, Numéro de série : 6639"

Спасибо

Может быть, это тайм-аут выполнения PHP?

Eugene Ruban 17.04.2018 10:46

Я редактирую свой вопрос с исключением

Hussein 17.04.2018 11:33
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
99
1

Ответы 1

PHP не особенно хорошо подходит для длительных процессов. Я выполнил десятки миллионов заданий через Beanstalkd и сотни миллионов - через другие системы очередей, и обычно выполняю цикл для некоторого количества итераций (от 5 или 10 до нескольких сотен или более), а затем выхожу из сценария, чтобы очистите его и перезапустите.

У вас может быть все, что запускает сценарий, а также организовать его перезапуск, init, upstart, supervisord или сценарий оболочки, который запускается из чего-то подобного.

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

Другие вопросы по теме