Pull to refresh
0
Max Treskin @Zertread⁠-⁠only

User

Send message
Из списка, возвращаемого функцией which_children, можно выбирать нужный идентификатор с помощью обычных списковых операций.

Недостаток такого подхода в том, что удаление спецификации при завершении процесса происходит не атомарно, и могут возникнуть всяческие гонки. К тому же, хранение этих ассоциаций (SomeId <-> pid) в ets позволяет делать удобные запросы с помощью MatchSpec, а gproc как раз так и делает. Помимо этого, с помощью gproc можно дожидаться момента, когда процесс уже точно запущен и зарегистрирован, и производить регистрацию глобально, во всём кластере.
Да, как раз воркеры. Вот вы этот pid для обращения к воркерам откуда получаете? Почему именно этому конкретному pid-у должно уйти сообщение, а не другому?
К процессам же надо как-то обращаться, значит, нужно ассоциировать их идентификатор с каким-то значащим термом. Например, надо отправить сообщение процессу, который представляет на серверной стороне пользователя «vasya». Тогда мы делаем примерно так: gproc:lookup_local_name({user, «vasya»})! {some, message}.

Прошу прощения за то, что сразу не ответил, почему-то перестали приходить письма о появлении комментариев.
Я в этом не вижу смысла. Храню идентификаторы процессов-коннектов в списке и дёргаю их round-robin'ом.
Спасибо, поправил
В gitk я смотрю разноцветное дерево только для ощущения масштабности работы, никакого практического применения я ему не нашёл. В этом случае как раз большой плюс, что история запутанная и дерево получается развесистым, так оно сильнее внушает.
Через gproc:select/1,2,3 можно делать запросы напрямую в ets.
Регистратор процессов — очень популярный паттерн в erlang-приложениях. Довольно часто он реализуется по нескольку раз в одном и том же приложении, я сам с десяток этих регистраторов написал, различались они совсем немного.
В erlyvideo на gproc можно заменить, думаю, регистрацию процессов ems_media_clients, затем признаки регистратора есть в media_provider, и в SIP в нескольких местах.
Да нет, почему же? Это и имел в виду.
Для оккупации не всегда нужны вооружённые силы.
Если у вас интересы — попить жыжу в общественном месте, да чего-нибудь пожрать, то не удивительно, что текущее положение полностью устраивает.
Нет не путаю. Социальное неравенство — в общем-то нормальное явление. Больше работаешь, больше ответственность — больше имеешь. Бухаешь и ширяешься — гниёшь в нищете в теплотрассе. То есть зависит только от поведения людей. Оккупация же — это когда зело шустрые поцанчики преступными методами отжимают у того, кто хорошо работал, всё, что он заработал, такими же методами приходят к власти, якобы с помощью честных выборов, принимают налоговые законы, оставляющие людям, желающим честно работать, ровно столько средств, сколько им хватит на проживание. Помимо этого, в законе оставляются разные лазейки, которые шустрые поцанчики рангом пониже (как правило, чиновники районного уровня) используют для решения разных вопросов, за деньги, разумеется. Они потом денежки на уровень выше заносят, ибо если не будут заносить, тот же самый закон истолкуют иначе и отправят в турму. Таким образом обеспечивается денежный поток снизу вверх, от самых нижних уровней населения на самый верх, плюс к этому имеется поддержка оккупации в лице этий районных жучков, ну это что-то типа полицаев на местности во время ВОВ.
Оккупационное государство — это такое государство, которое ставит свой целью не благополучную жизнь народа, а наживу власть держащих за счёт оккупации природных ресурсов и налогообложения, доходы от которых идут не в бюджет и общенародное пользование, а в карман весьма небольшой группы людей. Думаю, никто не будет спорить с тем, что наше государство относится к таким.
Да, прежде всего, угроза в этом. Оккупационные государства — они такие.
Ещё есть ресурс erlanger.ru, рассылка groups.google.com/group/erlang-russian/ и жаббер-конференция erlang@conference.jabber.ru
Опции fullsweep_after и min_heap_size можно задавать и для каждого процесса отдельно, запуская их с помощью spawn_opt, или передавая параметры в в gen_server,gen_fsm/start,start_link, если процессы используют соответствующие поведения из OTP.
Раньше на работе делал телеком всякий, потом ушёл оттуда. Сейчас занимаюсь erlyvideo и в другом месте одним интересным проектом.
Разве похоже, что я жалуюсь? У меня уже три года ерланг — основной язык, процентов 95 пишу на нём. Главное, не считать его языком общего назначения и не притягивать туда, куда не надо.
В большинстве случаев он просто не нужен, либо как из пушки по воробьям.
Приступая к изучению ерланга надо уже знать, что на нём делать, т.е. быть знакомым с проблемной областью. Иначе, изучая его на стандартных примерах с фибоначчами и факториалами, собственно, Erlang/OTP и не изучишь.
Ерланг называют «PHP из мира ФП» как раз за очень низкий порог вхождения. Так что миф о том, что он очень сложен, порождён исключительно предрассудками.

Information

Rating
Does not participate
Location
Новосибирская обл., Россия
Date of birth
Registered
Activity