Re: периодическое перезаполнение структур модуля по данным из конфига
Yury Zavarin
yury.zavarin на gmail.com
Сб Апр 3 07:33:44 MSD 2010
2010/4/3 Михаил Монашёв <postmaster на softsearch.ru>
> Здравствуйте, Юрий.
>
> YZ> Пишу сейчас модуль к nginx'у. Этот модуль берет из конфига имя
> YZ> файла, из которого он берет какие-то данные и держит их в памяти.
> YZ> Есть необходимость периодически (раз в минуту или раз в пять
> YZ> минут, например) перечитывать этот файл и использовать новые
> YZ> данные (если они поменялись). Само имя файла не меняется.
> YZ>
> YZ> Как правильно это делать?
> YZ> Правильно ли я понимаю, что можно, например, делать так, чтобы
> YZ> поменялась inode'а у конфига и делать nginx reload и при этом все
> YZ> будет хорошо работать? Или лучше использовать какой-то другой
> YZ> вариант? (Вариант проверять при каждом запросе, что подошло время
> YZ> перечитать файл, кажется мне плохим.)
>
> reload каждую минуту не хорошо делать. Накопится много завершающих
> свою работу воркеров. Они будут кушать память.
>
> YZ> И еще один вопрос.
> YZ> В данном случае получается, что каждый воркер будет держать в
> YZ> памяти то, что он прочитал из файла. Пока что это не представляет
> YZ> проблемы, данных не так уж много.
> YZ> Но если все же проблема возникнет, то в какую сторону смотреть? В
> YZ> сторону ngx_shared_memory_add и т. д.?
>
> Вот и ответ на твой первый вопрос: храни свои данные в шаредмеме, а
> обновляй их там другой программой хоть раз в секунду.
>
Угу, наверное. Только средствами самого nginx'а, как выяснилось, этого
добиться не получится: он создает только неименованные (в конечном счете)
области расшаренной памяти, к которой могут обращаться только воркеры и сам
мастер процесс.
Придется напрямую использовать IPC.
>
>
> --
>
> С уважением,
> Михаил Монашёв
> mailto:postmaster на softsearch.ru
> ICQ# 166233339
> http://michael.mindmix.ru/
> Без бэкапа по жизни.
>
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru на nginx.org
> http://nginx.org/mailman/listinfo/nginx-ru
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20100403/dea4d960/attachment-0001.html>
Подробная информация о списке рассылки nginx-ru