Size: a a a

2019 July 14

SZ

Stanislav Zaleski in pro.elixir
А бесконечный рестар нельзя запилить?
источник

SZ

Stanislav Zaleski in pro.elixir
Или только костылями через :trap_exit?
источник

SZ

Stanislav Zaleski in pro.elixir
Заколхозил. Теперь рестартит бесконечно
defmodule Parent do
 use Supervisor

 def start_link() do
   IO.inspect(__ENV__.line)
   Supervisor.start_link(__MODULE__, nil)
 end

 def init(_) do
   start_fetchers()
   loop()
 end

 def start_fetchers do
   Process.flag :trap_exit, true
   # Process.flag(:trap_exit, true)
   children = Elrss.Feeds.Feed
   # |> limit(5)
   |> Elrss.Repo.all()
   |> Enum.map(fn f ->
     worker(Fetcher, [f], [id: f.id, restart: :permanent])
   end)
   {:ok, pid} = Supervisor.start_link(children, strategy: :one_for_one)
 end

 def loop do    
   receive do
     {:EXIT, pid, _} = msg->
       # IO.puts "Parent got message: #{inspect msg}"
       IO.puts "Crashed. Restarting"
       start_fetchers()
       loop()
   end
 end
end
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Как ты думаешь, почему придумали отп?
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Наверное чтобы писать везде loop, send и trap_exit
источник

SZ

Stanislav Zaleski in pro.elixir
Мне надо было сделать бесконечные рестарты в образовательных целях. В реальных проектах я этого делать не буду.
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Дело не в бесконечных рестартах. Они и так бесконечные
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Дело в софте, нормальное поведение которого - падение
источник

ŹR

Źmićer Rubinštejn in pro.elixir
А так быть не должно
источник

SZ

Stanislav Zaleski in pro.elixir
Я не спорю что так быть не должно. Я из интереса так сделал
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
источник

DR

Dmitry Russ (Aleksandrov) in pro.elixir
:max_restarts
источник

МБ

Максим Барулин in pro.elixir
Эх не успел написать...
источник

SZ

Stanislav Zaleski in pro.elixir
Dmitry Russ (Aleksandrov)
:max_restarts
Я пробовал. Этот параметр не принимает :infinity. Можно только очень большое число вписать
источник

SZ

Stanislav Zaleski in pro.elixir
Я в образовательных целях уже заколхозил через Process.flag :trap_exit, true. Норм получилось
Сейчас уберу и перепишу на try rescue
Смысла в бесконечных рестартах нет, я только из любопытства это сделал
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Try rescue же не правильный подход тоже
источник

SZ

Stanislav Zaleski in pro.elixir
А, точно, если вместо HTTPoison.get!, написать HTTPoison.get, можно же паттерн матчингом обработать. Так правильнее, да
источник

MK

Max Konin in pro.elixir
Кто нибудь использует espec вместо ex unit? Стоит ли его использовать если пришёл с ruby & rspec?
источник

AM

Aliaksandr Martsinovich in pro.elixir
Может кто-нибудь создать пустой проект с зависимостями:
[
     {:nadia, git: "https://github.com/zhyu/nadia.git"},
     {:httpoison, "~> 1.5.1"},
     {:plug_cowboy, "~> 2.1"}
   ]

Собрать релиз и посмотреть все ли зависимости в нём присутствуют. У меня хоть убей пропадает Jason
источник

NM

Nikita Mistyukov in pro.elixir
явно уго укажи, раз пропадает)
источник