![]() |
|
Модераторы: ginnie, korob2001 |
![]()
|
|
| HotHead |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 26.10.2007 Репутация: нет Всего: 4 |
Добрый день. Может кто-нибудь подсказать, как связаться с неродственным процессом, зная его pid и возможно ли вообще такое?
Теперь много лирики. Мне нужно обрабатывать большое количество запросов (предположительно несколько тысяч в секунду). Все запросы идут через http и ловятся Апатчем. В каждом запросе несколько чисел. Каждый запрос должен слазить в файл (скорее даже несколько файлов), взять оттуда данные, провести некоторые операции со своими числами и числами из файлов и записать результат в те же файлы. Если мне удастся каким-то чудом поймать все эти числа одним процессом, то это должно облегчить работу, т.к. можно будет провести предобработку (как минимум выкинуть дублирующиеся данные), одним махом считать всю нужную информацию из файлов и одним махом записать результаты рассчётов (делать это периодически я имею в виду). В принципе можно примитивно обсчитывать всё по очереди, но я боюсь что это загнёт машину, т.к. каждый процесс будет лочить файл до тех пор, пока не обработает свои данные. А тогда процессов может скопится очень много. Если кто-нибудь знает как лучше всего решить такую задачку - подскажите. Наверное самым логичным было бы ловить запросы своим сервером по некоторому порту, но Апатч уже жёстко засел в проекте. Первое что мне пришло в голову - именно свой сервер с отправкой сообщений через порт от одного процесса другому, но это уже какое-то (вряд ли быстрое) извращение. К тому же знание Perl у меня слабенькое, Linux - вообще зачаточное. Посему решил спросить оптимального решения. Заранее спасибо. |
|||
|
||||
| KSURi |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: 5 Всего: 27 |
Несовсем понял, а что значит "связаться"?
Может perldoc perlipc поможет? -------------------- Died at Life.pl line 21 |
|||
|
||||
| HotHead |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 26.10.2007 Репутация: нет Всего: 4 |
KSURi,
Связаться - значит обеняться данными а-ля сокет. Самое близкое к тому что мне надо - именованый канал. Т.е. мне надо чтобы с одной стороны сидел в памяти скрипт и караулил некую точку входных данных, а с другой стороны к этой точке обращались несколько процессов. FIFO был бы решением, если бы он умел во-первых отдавать данные индивидуально каждому входящему процессу (а он, насколько я понимаю, эквивалентен генерации файла на лету, т.е. все входящие процессы получат одинаковые данные) и во-вторых пока данные нескольких первых процессов будут обсчитываться к нему могут подключится ещё процессы. Тогда данные второй партии процессов будут не учтены. |
|||
|
||||
![]()
|
| Правила форума "Perl: Системное программирование" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |