forum.bitel.ru
http://forum.bitel.ru/

Заглючил сервер биллинга
http://forum.bitel.ru/viewtopic.php?f=22&t=7526
Страница 1 из 1

Автор:  vkulakov [ 11 дек 2012, 11:59 ]
Заголовок сообщения:  Заглючил сервер биллинга

После перезапуска сервера и шедулера запустились все задачи планировщика независимо от указанного времени запуска. В результате наши абоненты получили по несколько SMS-сообщений.
Может кто объяснить, что это было?

Автор:  skyb [ 11 дек 2012, 12:14 ]
Заголовок сообщения:  Re: Заглючил сервер биллинга

а до остановки небыло что висели незавершенные задачи?

Автор:  vkulakov [ 11 дек 2012, 12:31 ]
Заголовок сообщения:  Re: Заглючил сервер биллинга

Ситуация проясняется.
Вчера вечером проводились эксперименты, в которых генерировались события таймера, по которому для всех договоров выполнялся скрипт. Этот скрипт в зависимости от группы договора отправлял SMS сообщение. На тот момент в скрипте стояла только одна тестовая группа, под которую попал только один договор. По всей видимости, вчера в ActiveMQ выгреблись не все сообщения, даже лучше сказать, что большинство сообщений осталось в очереди. После рестарта сервера все эти сообщения начали выгребаться из очереди, но в скрипте стояли уже другие группы :(.
В общем, вопрос: почему в очереди ActiveMQ "зависли" сообщения? По логам всё замечательно.

Автор:  vkulakov [ 11 дек 2012, 12:46 ]
Заголовок сообщения:  Re: Заглючил сервер биллинга

Сразу скажу, что текущая схема кривая - уже задумались над переделыванием.
Но вопрос всё-равно актуален: почему зависают сообщения в ActiveMQ?

Автор:  Amir [ 11 дек 2012, 13:55 ]
Заголовок сообщения:  Re: Заглючил сервер биллинга

Обычно подвисают, если обработка (выборка) подвисает или сильно замедляется.
Но события таймера не рекомендую использовать, они и без ActiveMQ могли хорошо подвесить обработку событий.

Автор:  vkulakov [ 11 дек 2012, 14:42 ]
Заголовок сообщения:  Re: Заглючил сервер биллинга

Вообще, после обновления сервер постоянно глючит: то договоры не активируются, то код не компилируется, то отчёты не формируются. Уже раз пять сервер перезапускали... Да к тому же при остановке он постоянно вываливается с Timeout, приходится вручную убивать процесс...
А как же без событий таймера? Даже если я рассылки переведу на Dispath, то там всё-равно таймер есть, да и в других модулях много стандартных задач.

Автор:  dimOn [ 11 дек 2012, 15:14 ]
Заголовок сообщения:  Re: Заглючил сервер биллинга

Нету в диспатче никакого таймера, о чём вы? Там просто запуск задачи по расписанию. Вы ничего не путаете?

Цитата:
Вообще, после обновления сервер постоянно глючит: то договоры не активируются, то код не компилируется, то отчёты не формируются. Уже раз пять сервер перезапускали...
нужно более подробнее

Автор:  Amir [ 11 дек 2012, 15:36 ]
Заголовок сообщения:  Re: Заглючил сервер биллинга

Нужно смотреть, что в activeMQ происходит (включить web-консоль).

Автор:  vkulakov [ 12 дек 2012, 11:35 ]
Заголовок сообщения:  Re: Заглючил сервер биллинга

dimOn писал(а):
Нету в диспатче никакого таймера, о чём вы? Там просто запуск задачи по расписанию. Вы ничего не путаете?

Т. е. вы хотите сказать, что выполнение задачи по расписанию из планировщика заданий и генерирование события таймера с последующим выполнением скрипта по этому событию - не одно и тоже в плане нагрузки на сервер? Если это так, то я действительно что-то путаю... :) Кстати, а Dispath при выполнении рассылки тоже приводит к большому потоку сообщений (т. е. каждый договор должен поймать событие и самостоятельно выполнить рассылку) или рассылка для каждого договора выполняется в одном потоке/процессе? В первом случае переход на Dispatch особо не поможет. Надеюсь вы меня поймёте, т. к. пока у меня не сложилось общей картины, как всё это работает.

dimOn писал(а):
нужно более подробнее

Тут тяжело подробнее описать ситуацию, т. к. глюки, как обычно, тяжело поддаются подробной формулировки. Но я попробую...
Сначала перестали активироваться заблокированные договоры при поступлении платежа. При этом в лога ничего не было - как будто так и должно быть. Попытался перезапустить сервер, но после server_stop.sh выскочила ошибка с timeout, и пришлось убивать процесс вручную. После запуска договоры начали активироваться.
Затем перестал компилироваться динамический код - нажимаешь кнопку "Компилировать" и клиент намертво виснет. :(
Потом перестали генерироваться некоторые отчёты.
Потом опять перестали активироваться договоры. После перезагрузки как раз произошла массовая рассылка SMS, а сама перезагрузка прошла как и ранее.
Потом вообще перестал отвечать клиент и опять перезагрузка с приключениями.
С тех пор рассылок пока не делаем. Биллинг пока работает без видимых проблем. Включили WEB-консоль в ActiveMQ и наблюдаем.
Кстати, столбец "Number Of Pending Messages" в очередях - это и есть зависшие сообщения? У нас пока 2...

Автор:  dimOn [ 12 дек 2012, 12:17 ]
Заголовок сообщения:  Re: Заглючил сервер биллинга

Цитата:
Т. е. вы хотите сказать, что выполнение задачи по расписанию из планировщика заданий и генерирование события таймера с последующим выполнением скрипта по этому событию - не одно и тоже в плане нагрузки на сервер?
смотря что за скрипты итд. тут речь о том что в диспатче вообще на таймер зачем что-то вешать, если есть штатная задача. про нагрузку я откуда знаю. пустое событие само по себе никакой нагрузки не несёт.

Автор:  dimOn [ 12 дек 2012, 12:24 ]
Заголовок сообщения:  Re: Заглючил сервер биллинга

Цитата:
Кстати, а Dispath при выполнении рассылки тоже приводит к большому потоку сообщений (т. е. каждый договор должен поймать событие и самостоятельно выполнить рассылку) или рассылка для каждого договора выполняется в одном потоке/процессе?
Конечно всё выполняется в одном таске специальном. Никакие события на договор не вешаются. Написано ж в доке всё.

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/