За последние 24 часа нас посетили 18182 программиста и 1663 робота. Сейчас ищут 1744 программиста ...

Настройка Supervisor

Тема в разделе "PHP для профи", создана пользователем apt-get_mebeer, 22 авг 2016.

  1. apt-get_mebeer

    apt-get_mebeer Активный пользователь

    С нами с:
    17 ноя 2011
    Сообщения:
    12
    Симпатии:
    0
    Всем привет! Суть проблемы вот такая,
    Стартую при помощи supervisord N-ное количесвто воркеров (воркеры слушают очередь beanstalkd)! При старте все отлично! Процессы начинают работать как только в очередь падают сообщения (на решение каждого сообщения уходит 5 минут), но проблема в том что через 1.5 минуты процесс выплевывает обратно в очередь сообщение и тут же его забирает! Не могу опнять в чем беда! Подскажите пожалуйста куда смотреть!

    Заранее спасибо
     
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Отладка ничего не показала?
     
  3. apt-get_mebeer

    apt-get_mebeer Активный пользователь

    С нами с:
    17 ноя 2011
    Сообщения:
    12
    Симпатии:
    0
    Неа! Сейчас поднял то же самое окружение на локальном компьютере запустил и все работает на ура! но вот на сервере нет.

    Код (Text):
    1. 2016-08-22 14:27:41,642 INFO daemonizing the supervisord process
    2. 2016-08-22 14:27:41,643 INFO supervisord started with pid 19627
    3. 2016-08-22 14:27:42,645 INFO spawned: 'worker_00' with pid 19629
    4. 2016-08-22 14:27:42,646 INFO spawned: 'worker_01' with pid 19631
    5. 2016-08-22 14:27:43,709 INFO success: worker_00 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
    6. 2016-08-22 14:27:43,709 INFO success: worker_01 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
    7. 2016-08-22 14:28:25,751 WARN received SIGTERM indicating exit request
    8. 2016-08-22 14:28:25,752 INFO waiting for worker_00, worker_01 to die
    9. 2016-08-22 14:28:25,754 INFO stopped: worker_00 (terminated by SIGKILL)
    10. 2016-08-22 14:28:25,754 INFO stopped: worker_01 (terminated by SIGKILL)
     
    #3 apt-get_mebeer, 22 авг 2016
    Последнее редактирование: 22 авг 2016
  4. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Значит, окружение не идентично. Проверяй конфиги, ограничения и права.
     
  5. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    А логи выполнения таска? Похоже что он идет в работу, падает с ошибкой и потому не успевает удалиться из очереди, supervisor воркер перезагружает, он вновь берет таск, рушится и так по кругу )
     
  6. apt-get_mebeer

    apt-get_mebeer Активный пользователь

    С нами с:
    17 ноя 2011
    Сообщения:
    12
    Симпатии:
    0
    Так проблему с залипанием тасков решил. Дело было в том что ЯП который запускался в фоне на сервере имел ограничение на время выполнения... Вот и отваливался с ошибкой и возвращал сообщение в очередь.
    Сейчас другая ошибка, точнее ошибок нет.... задачи выполняются правильно, но файл который должен создаться с результатами работы скрипта он не создается!!!! Права смотрел все ок.
    Вот логи запуска supervisord
    Код (Text):
    1. root@debian:/home/at# tail -f /var/log/supervisor/supervisord.log
    2. 2016-08-22 16:43:35,385 WARN Included extra file "/etc/supervisor/conf.d/test.conf" during parsing
    3. 2016-08-22 16:43:35,414 INFO RPC interface 'supervisor' initialized
    4. 2016-08-22 16:43:35,414 WARN cElementTree not installed, using slower XML parser for XML-RPC
    5. 2016-08-22 16:43:35,414 CRIT Server 'unix_http_server' running without any HTTP authentication checking
    6. 2016-08-22 16:43:35,415 INFO daemonizing the supervisord process
    7. 2016-08-22 16:43:35,416 INFO supervisord started with pid 8509
    8. 2016-08-22 16:43:36,419 INFO spawned: 'worker_00' with pid 8513
    9. 2016-08-22 16:43:36,422 INFO spawned: 'worker_01' with pid 8518
    10. 2016-08-22 16:43:37,499 INFO success: worker_00 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
    11. 2016-08-22 16:43:37,499 INFO success: worker_01 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
    А вот натсройки *.conf
    Код (Text):
    1. [program:worker]
    2. command=/var/www/srtep/yii source-worker
    3. process_name=%(program_name)s_%(process_num)02d
    4. numprocs=2
    5. directory=/var/www/srtep
    6. stdout_logfile=/var/log/worker-test.log
    7. autostart=true
    8. autorestart=true
    9. user=www-data
    10. umask=002
    11. stopsignal=KILL
     
  7. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Ещё раз. Если скрипт что-то не создает, не берет или не удаляет, при чем тут supervisor? Он только следит за тем что бы процесс был запущен. Всё.
     
  8. apt-get_mebeer

    apt-get_mebeer Активный пользователь

    С нами с:
    17 ноя 2011
    Сообщения:
    12
    Симпатии:
    0
    Ну да это понятно! Проблема из первоого моего сообщения решена! Спасибо!

    ps далее я просто описал следующую проблему, типа что может быть если файл не создается. Модет я в конфигах что то напортачил... вот и выложил конфиги! Всё!
     
  9. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    дык это, есть же ещё логи php. Что в них?
     
  10. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Смотри еще раз. Проблема в них с вероятнотью 99%.
    От чьего имени стартуют процессы? Какие права у самого пользователя? Какие права у него на конечную папку? Глобально что на папке выставлено? Если просто руками попробовать создать файлик в тестовом скрипте - он создастся?

    Вообще сейчас из-за таких вот закидонов стало модным разворачивать на серваках виртуалки. Позволяет иметь 100% идентичные локальный и внешний инстансы. Позволяет настраивать горизонтальное масштабирование внутри одной железки, параллеля запросы и все такое. Благо, современные виртуалки не те, что были лет 15 назад. Аппаратная паравиртуализация на уровне процессора и прочие ништяки гарантируют отменное быстродействие.
     
  11. apt-get_mebeer

    apt-get_mebeer Активный пользователь

    С нами с:
    17 ноя 2011
    Сообщения:
    12
    Симпатии:
    0
    Спасибо! Да именно в правах было дело! Запускался от www-data и пытался заменить root-вый файл.
     
  12. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Классика жанра :)
    А как часто об эти грабли бьются головой те, кто кодит под виндой, а разворачивается под линупсом...ммм...