Добрый день,
У нас есть Perl-скрипт, который обрабатывает запросы геолокации от головных серверов на крупном веб-сайте. Сценарий — это брокер, обеспечивающий дополнительную бизнес-логику, интерпретирующую данные, возвращаемые продуктом COTS, который предоставляет данные для заданного IP-адреса, например. страна, тип подключения, тип маршрутизации, оператор связи и т. д.
Этот сервис Geo в настоящее время обрабатывает пиковые нагрузки около 1000 запросов в секунду на серверной части COTS. Кстати, на самом деле он обслуживает 5000 запросов. из своего выделенного уровня балансировки нагрузки/кеша, который находится непосредственно перед уровнем брокера.
Недавно мне пришлось изменить поведение этого брокера, чтобы разрешить новую категорию подключений, которые, как мы видели, происходят на сайте, что вызывает некоторые проблемы.
Оригинальная версия скрипта, не моя разработка! кстати, был построен с использованием смеси элементов конфигурации в самом скрипте и других элементов в отдельных фрагментах Perl. Как было совершенно справедливо отмечено во время экспертной оценки моих изменений, нам, вероятно, следует перенести все элементы конфигурации в отдельные, а не продолжать использовать смесь встроенных и отдельных элементов конфигурации.
Теперь я хочу пойти дальше и поместить все элементы конфигурации, созданные как отдельные хеши Perl, в один файл конфигурации.
На данный момент нам нужно остановить и перезапустить все приложение, чтобы перезагрузить новые элементы конфигурации, что, учитывая уровни трафика, немного неудобно, даже несмотря на то, что существует четыре экземпляра брокера в двух разных центрах обработки данных, поэтому мы никогда не теряем. сервис.
Я подозреваю, что мне придется прибегнуть к таймеру или, может быть, счетчику запросов и выполнить статистику по рассматриваемому файлу конфигурации. Или, может быть, даже иметь настроенный TTL для файла конфигурации и просто перезагружать его каждые десять минут или около того.
Но есть ли способ заставить Perl автоматически перезагружать более новую версию ранее загруженного файла? Я имею в виду поведение, подобное тому, которое обеспечивает модуль Apache mod_perl.
ваше здоровье,