Size: a a a

2019 March 27

a

atanych in pro.elixir
и вроде как есть рестарт стратегии
источник

a

atanych in pro.elixir
но они не пашат для динамик супарвизора
источник

к

кана in pro.elixir
Deleted Account
Ребят, меня сегодня поставили в тупик. Тезис:

В ОО дизайн программы (сущности, связи, интерфейсы и пр.) можно выражать с помощью UML диаграмм, и это как бы очень удобный инструмент абстрагирования от кода (который еще даже может быть не написан).

И тут я хотел бы сказать что мол в ФП тоже нет никаких проблем рисовать диаграммы а затем выражать их кодом, но быстро понял что я это ни разу не делал и даже не знаю как.


Вопрос: как визуализировать фп код в диаграммах?
ну тут все таки чат про эликсир, а не про фп, дизайн програм довольно ОО-шный, и те же диаграмы
источник

a

atanych in pro.elixir
искренне, я с этим stop провозился часа 2 😊
источник

a

atanych in pro.elixir
от души спасибо @macdrive
источник

NK

ID:382338188 in pro.elixir
atanych
от души спасибо @macdrive
☺️
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Где ты указываешь restart?
источник

ŹR

Źmićer Rubinštejn in pro.elixir
По идее это должно работать, если исходить из кода dynamic supervisor
источник

a

atanych in pro.elixir
Źmićer Rubinštejn
Где ты указываешь restart?
Я попробовал в двух местах
источник

a

atanych in pro.elixir
Либо в генсервере, там где делаю use GenServer
источник

a

atanych in pro.elixir
atanych
или даже так use GenServer, restart: :transient
Вот так
источник

a

atanych in pro.elixir
Либо вот так
DynamicSupervisor.init(strategy: :one_for_one, restart: :transient)
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Короче у меня точно все правильно работает
источник

ŹR

Źmićer Rubinštejn in pro.elixir
defmodule DynS.Application do
 # See https://hexdocs.pm/elixir/Application.html
 # for more information on OTP Applications
 @moduledoc false

 use Application

 def start(_type, _args) do
   # See https://hexdocs.pm/elixir/Supervisor.html
   # for proper instructions
   Supervisor.start_link(
     [
       # Add this exmpla worker using `mix aqua add otp.gs DynS.Worker`
       # DynS.Worker
       DynS.Supervisor
     ],
     strategy: :one_for_one,
     name: DynS.Application
   )
 end
end


defmodule MyWorker do
 use GenServer, restart: :transient

 def start_link(arg) do
   GenServer.start_link(__MODULE__, arg)
 end

 def handle_info(:test, state) do
   IO.inspect(:test)
   {:stop, :normal, state}
 end
end


defmodule DynS.Supervisor do
 use DynamicSupervisor

 def start_link(arg) do
   DynamicSupervisor.start_link(__MODULE__, arg, name: __MODULE__)
 end

 def init(_arg) do
   DynamicSupervisor.init(
     strategy: :one_for_one
   )
 end

 def start_child(name) do
   # If MyWorker is not using the new child specs, we need to pass a map:
   # spec = %{id: MyWorker, start: {MyWorker, :start_link, [foo, bar, baz]}}
   spec = {MyWorker, name}
   DynamicSupervisor.start_child(__MODULE__, spec)
 end
end
источник

ML

Maksim Lapshin in pro.elixir
разницу между one_for_one и one_for_all все понимают?
источник

ŹR

Źmićer Rubinštejn in pro.elixir
У dynamic supervisor только one for one
источник

a

atanych in pro.elixir
Źmićer Rubinštejn
Короче у меня точно все правильно работает
Хм, спасибо. Я посмотрю сегодня вечером
источник

a

atanych in pro.elixir
Źmićer Rubinštejn
Короче у меня точно все правильно работает
А какая версия?
источник

a

atanych in pro.elixir
1.8?
источник

ŹR

Źmićer Rubinštejn in pro.elixir
да
источник