|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Maxim 2:5015/157.2 27 Jan 2003 15:10:39 To : All Subject : ..блокировка файлов --------------------------------------------------------------------------------
я написал почтовый бот (linux/perl(Net::POP3,Net::SMTP)/oracle 9)
который занимается разбором структуры, анализом ее, занесением инфы из
писем (структура писем жестко определена) в oracle и отправку диагностики.
Руководство отчегото решило, что данная
реализация не есть надежной из за присутствия crona! И предлагается
использывать возможность sendmail перенаправлять содержимое писем,
пришедших на определенный ящик, на входной поток бота. При этом, в
случае получения нескольких писем происходит запуск нескольких копий
бота! И сдесь возникают определенные сложности. В частности разрешение
ситуации совместного доступа к файлам логов (обновления) и
неопределенность в поведении служебных библиотек самого бота.
единственное что мне приходит в голову это использование flock и sysopen:
use Fcntl qw(:DEFAULT :flock)
sysopen(FH,"filename",O_APPEND|O_CREAT) || die;
flock(FH,LOCK_EX) || die;
.... запись в файл
close(FH) || die;
но я пока незнаю .. насколько данное решение надежно, количество логов
8. В идеале хотелосьбы чтобы при получении блокировки файла лога
остальные копии при обращении к нему образовывали очередь и ждали
снятие блокировки. Hо тут возникает проблема с обработкой тайм-аута
копии.
что касается библиотек, то могу только предпологать как они будут
работать при одновременной работе нескольких копий бота.
Я был бы очень вам благодарен если бы вы высказали свое мнение или
предложения относительно данной ситуации. Или посоветуйте кто может
помоч с данной проблемой.
С уважением Максим
--- Nizhny Novgorod NNTP-HTTP Gateway
* Origin: http://newsgate.nnov.ru (2:5015/157.2@fidonet)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/5290ce4a3bbb.html, оценка из 5, голосов 10
|