Расскажите мне, пожалуйста, в двух словах, как белые люди решают такую вот задачку:
Есть процесс, страшно сказать, демон.
Висит он на своём каком-то порту, цепляется к нему народ, он форкается и висит себе дальше..
Но висит он там не просто так.
Иногда он должен что-то сообщать клиентам, которые имели несчастье к нему прицепиться. Причём, передать инфу всем клиентам одновременно. Как бы мне так из другой программы передать инфу во все форки этого демона разом, не прибегая к помощи мускула..?
Сейчас у меня всё происходит просто ну ооочень по волосатому.. Каждый из форков раз в десять секунд лезет в мускул на предмет наличия там новой инфы, которая не старше, чем десять секунд, если такая имеется — процесс сообщает инфу своему клиенту. Писалось всё за одну ночь, эта была вообще моя первая «сетевая» программа (я был удивлён, что оно ваще хоть как-то работает, а оно, между прочим, работает вполне нормально:)), думать времени не было, клиентов там висит немного, благо, писалось исключительно для служебного пользования. А сейчас просто времени немного свободного появилось, да и интересно стало..
Написано всё на PERL’е под Linux.
P.S. Сильно не пинать, не программер я ни в каком месте. Опыт программирования на PERL’е — тыщ пять-шесть строчек.
P.P.S. Стивенса сейчас под рукой нет. ((
Последние комментарии
- OlegL, 17 декабря 2023 года в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
послать сигнал ему, а вон пошлет сигнал всем чилдам и они что-нить прочитать для данных от что собственно передавали
ээ…?
вторая половина предложения слишком сложна для моего понимания..(
1) Послать сигнал ему
2) Он пошлёт всем потомкам.
3) ..?
Есть еще вариант такой:
пусть демон слушает какой-нить пайп.
Если в пайп что-то пришло — разослать это всем потомкам. Рассылать данные потомкам можно кучей разных способов, начиная от неименованных пайпов или доменных сокетов и заканчивая очередями сообщений.
Удобство пайпа в том, что он обладает семантикой обычного файла и в него можно срать даже из баш-скрипта. Просто
Спасибо. Примерно понял. Идея понравилась.
В общем, один чёрт, доки читать надо..
Теперь глупый вопрос.
Совсем глупый, Стивенса под рукой нет.
А из одного пайпа могут читать сразу все дети..? Или мне нужно для каждого свой создавать..?
P.S. Как бы я не хотел, Стивенс под рукой так и не появляется…(((
можно, наверное, немного иначе:
-писать информацию в разделяемую память
-разослать потомкам сигнал по которому они (потомки) прочтут ее (информацию)