Welcome! Log In Create A New Profile

Advanced

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

November 29, 2010 01:00PM
> > Все хорошо, но на файл ставится ЛОК.
> > Соответственно пока лок стоит, другие
> > воркеры с этим файликом уже не
> > поработают

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

В целом понятно. Как один из вариантов пойдет. Со склеиванием будет чуть больше проблем.

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

Посмотрел я как пишутся логи. Если конечно правильно понял. Открывается файлик (в конечном итоге все тот же open c O_APPEND и O_WRONLY), а затем все тот же write. Без локов и т.п. И "каши" из данных не случается? Т.е. не получиться так, что разные процессы начнут писать в файли одновременно? Или это на уровне системы решается? Простите, не особо силен в этом вопросе, поэтому и сделал "подстраховку" в виде обрамления файл-лок. Нужна ли она в таком случае, ибо у меня в сущности тот же код работы с файлами логов.

> Ну или просто писать нужные данные в логи через переменную.

А вот тут немного не понял. что за переменная? В смысле - писать через "стандартный" nginx механизм логов? Пару слов, если можно, как писать.

Есть еще мысль сделать что-то вроде предварительного буфера на 1000 строк к примеру. И в него загонять лог, и по заполнении сливать в файл. Но имеет ли смысл подобное извращение?
Subject Author Posted

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

vadlm November 29, 2010 06:50AM

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

Maxim Dounin November 29, 2010 07:32AM

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

vadlm November 29, 2010 01:00PM

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

Anton Yuzhaninov November 29, 2010 01:06PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 81
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready