Size: a a a

2019 September 07

AK

Ali Kalmenov in pro.elixir
Vsevolod Avramov
У меня 22. Всё норм с ним. И да - потом elixir
Okay
источник

VA

Vsevolod Avramov in pro.elixir
После ещё :observer.start() проверь из консоли iex.
источник

AK

Ali Kalmenov in pro.elixir
Ему ещё компилятор Java требуется? 😳
источник

AK

Ali Kalmenov in pro.elixir
'automake' не скачивается 😒
источник

AK

Ali Kalmenov in pro.elixir
Самое сложное в программировании для меня, это установка всех зависимостей. Говорят Docker с этим помогает?
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Ali Kalmenov
Самое сложное в программировании для меня, это установка всех зависимостей. Говорят Docker с этим помогает?
Врут
источник

AK

Ali Kalmenov in pro.elixir
Всё тлен...
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Нужно скачивать эликсир, который построен на конкретной версии эрланга
источник

ŹR

Źmićer Rubinštejn in pro.elixir
По умолчанию все сборки - на минимально возможной версии otp
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Начиная с 1.9 эликсира минимальная - otp 20.3
источник

AK

Ali Kalmenov in pro.elixir
Źmićer Rubinštejn
По умолчанию все сборки - на минимально возможной версии otp
Ок. К слову, вроде всё поставилось, надеюсь потом тот 1 warning с automake не ужалит меня в зад
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Чтобы поставить нужный эликсир asdf install elixir 1.9.1-otp-22
источник

AK

Ali Kalmenov in pro.elixir
Źmićer Rubinštejn
Чтобы поставить нужный эликсир asdf install elixir 1.9.1-otp-22
Bcё поставилось, правда Elixir за 1.5 сек установился, подозрительно прям!)
источник

AM

Azat Murtazin in pro.elixir
Эликсир - это тонкий слой руби-образного сахарка над эрланговой вм, поэтому и быстро ставится
источник

AK

Ali Kalmenov in pro.elixir
Vsevolod Avramov
После ещё :observer.start() проверь из консоли iex.
Проверил, всё пашет.
источник

VA

Vsevolod Avramov in pro.elixir
Ali Kalmenov
Проверил, всё пашет.
Отлично! Поздравляю. А на счёт докера - согласен. У меня в системе только elixir стоит (ну и node + npm). Всё остальное через докер - очень удобно
источник

AK

Ali Kalmenov in pro.elixir
Vsevolod Avramov
Отлично! Поздравляю. А на счёт докера - согласен. У меня в системе только elixir стоит (ну и node + npm). Всё остальное через докер - очень удобно
Ноду 10 так и не получилось поставить, только 8 либо 12 ставилась, но это уже, другая история!
источник

AK

Ali Kalmenov in pro.elixir
Спасибо за помощь всем!
источник
2019 September 09

VI

Victor Ivanov in pro.elixir
Привет!
Продолжаю мучать вас нубскими вопросами.
Посмотрел тут доклад Саши https://www.youtube.com/watch?v=JvBT4XBdoUE (рекомендую всем новичкам) и понял, почему мне говорили, что, в одном процессе следить за презенсом всех юзеров это не айс. Сейчас, если этот процесс упадет по причине например таймаута БД или еще из-за чего-то, он рестартанет, и все зрители всех семинаров как-бы переприсоединяться (хотя по факту они и не отсоединялись)

Поэтому решил, что нужно выносить каждый семинар в отдельный процесс, тогда если у глюкнет, то у ограниченного числа зрителей.

Вопрос: как это правильно организовать? Сейчас у меня один процесс стартует при старте аппа, и потом на джоин к каналу вызывается его метод.

# lib/webinargeek/application.ex
defmodule App.Application do
 use Application

def start(_type, _args) do
 children = [
   App.Repo,
   App.Endpoint,
   App.Presence,
   {PresenceMonitor, :broadcast_presence_monitor}
 ]

 opts = [strategy: :one_for_one, name: App.Supervisor]
 Supervisor.start_link(children, opts)
end
...


#
lib/webinargeek_web/channels/broadcast_channel.ex
...
def handle_info(:after_join, socket) do
 subscription_id = socket.assigns.subs_id
 if socket.assigns.needs_presence, do: push(socket, "presence_state", Presence.list(socket))
 {:ok, _} = Presence.track(socket, subscription_id, %{subs_id: subscription_id})
 :ok = start_presence_monitor(socket)
 {:noreply, socket}
end

defp start_presence_monitor(socket) do
 PresenceMonitor.monitor(
   :broadcast_presence_monitor,
   "broadcast:" <> socket.assigns.broadcast,
   socket.assigns.subs_id
 )
end
...

PresenceMonitor это обычный GenServer.

Т
епер, как я понимаю, в его методе monitor я должен динамически стартовать новый процесс, который будет следить за презенсом для конкретного канала.

Вопрос: что почитать / посмотреть, чтоб это сделать? И вообще, я в правильном направлении двигаюсь, или это ненужный оверенжиниринг? Дело пока даже до стейджа не дошло
источник

VI

Victor Ivanov in pro.elixir
Наверное, _что почитать_ это лишний вопрос, книги под рукой есть, и гуглить умею, покритикуйте сам подход, плез
источник