Процессы в Elixir
(ну и в Erlang
конечно же) идентифицируются с помощью уникального идентификатора процесса — pid.
Мы используем их, чтобы взаимодействовать с процессами. Сообщения посылаются как бы в pid
, а виртуальная машина сама заботится о доставке этих сообщений в правильный процесс.
Иногда, впрочем, чрезмерное доверие к pid
может приводить к значительным проблемам.
К примеру, мы можем хранить pid
уже мёртвого процесса, или мы можем использовать Supervisor
, который абстрагирует создание процессов от нас, поэтому мы даже не знаем, какой у них pid
(пер: а ещё Supervisor
можете перезапустить упавший процесс с другим pid
, и мы об этом не узнаем никак).
Давайте создадим простое приложение и посмотрим: с какими проблемами мы можем столкнуться и как мы эти проблемы будем решать.
Рубрика «Elixir» - 7
Elixir: Регистрируем процессы — практическое руководство
2016-07-28 в 9:39, admin, рубрики: Elixir, erlang, Erlang/OTP, functional programming, otp, конкурентное программирование, параллельное программирование, функциональное программированиеElixir: начинаем работу с Plug
2016-07-25 в 7:37, admin, рубрики: Elixir, Erlang/OTP, functional programming, otp, phoenix, функциональное программированиеВ мире Elixir
, Plug
представляет собой спецификацию, позволяющую различным фреймворкам общаться с различными web-серверами, работающими в Erlang VM
.
Если вы знакомы с Ruby
, то можете провести аналогию с Rack
: Plug
пытается решать те же проблемы, но только другим способом. Понимание основ работы Plug
позволит лучше разобраться как с работой Phoenix
, так и других web-фреймворков, созданных на языке Elixir
.
Минимальный HTTP API Endpoint используя Elixir
2016-01-20 в 11:51, admin, рубрики: api, cowboy, Elixir, Elixir OTP, http, Plug, Ranch, tcp, ua-hosting.company, Блог компании ua-hosting.company, ит-инфраструктура, принимающих соединений, програмирование, хостинг, метки: Elixir, Elixir OTPДавайте рассмотрим создание минимального HTTP API Endpoint используя Elixir. Так же, как и Rack в Ruby, Elixir идет в комплекте с Plug. Это универсальный инструмент для работы с HTTP соединениями.