Re: Как узнать номер worker из модуля

Maxim Dounin mdounin на mdounin.ru
Пн Ноя 29 15:31:34 MSK 2010


Hello!

On Mon, Nov 29, 2010 at 06:50:36AM -0500, vadlm wrote:

> Есть модуль, принимает запрос,
> обрабатывает, пишет в файл и выдает
> ответ. 
> Все хорошо, но на файл ставится ЛОК.
> Соответственно пока лок стоит, другие
> воркеры с этим файликом уже не
> поработают и ждут его разлочки, а т.к.
> после записи в файл идет формирование
> ответа, то получаем "паразитную"
> синхронизацию воркеров. Как-то так, не
> уверен, что правильно понимаю работу
> воркеров.
> 
> Появилась мысль - каждому воркеру по
> своему файлу (пост-обработкой потом
> склею). Так вот как узнать номер
> воркера, что бы по этому номеру
> открывать соответст. файл? можно
> конечно через pid формировать имя файла -
> но это не совсем удобно.

pid - это единственный возможный вариант, т.к. скажем после SIGHUP 
запускается новый комплект воркеров (при ещё работающих старых).

Хотя я бы в данном случае скорее рекомендовал смотреть в сторону 
O_APPEND (собственно, именно так nginx пишет логи).  Ну или просто 
писать нужные данные в логи через переменную.

Maxim Dounin



Подробная информация о списке рассылки nginx-ru