Size: a a a

2020 August 29

B

Bogdan in pro.elixir
Вот гайд если что
источник

SK

Suren Kirakosyan in pro.elixir
ок
источник

T

Tharin in pro.elixir
Suren Kirakosyan
так, сам генсервер не имеет прямое отношение к ассинхронности, для ассинхронности нужно задействовать процессы?
Генсервер - это процесс, который ожидает сообщения. Сообщения посылаются асинхронно, да. Но метод get_temperature, скорее всего, реализован так - посылается сообщение и потом ждется ответ
источник

T

Tharin in pro.elixir
Это не асинхронно :)
источник

SK

Suren Kirakosyan in pro.elixir
Tharin
Если ты для каждого города по генсерверу заведешь, то они свои сообщения будут обрабатывать независимо друг от друга. Параллельно.
разве в этом примере кода я не так делаю?

cities
|> Enum.map(
                       fn city -> {:ok, pid} =   Metex.Worker.start_link

                       Metex.Worker.get_temperature(pid, city)
    end)
источник

T

Tharin in pro.elixir
Покажи метод get_temperature
источник

T

Tharin in pro.elixir
А ещё лучше почитай книгу Elixir in Action
источник

SK

Suren Kirakosyan in pro.elixir
источник

SK

Suren Kirakosyan in pro.elixir
вот и всё
источник

B

Bogdan in pro.elixir
Suren Kirakosyan
вот и всё
А в  start_link что ?
источник

B

Bogdan in pro.elixir
Есть регистри  у тебя ?
источник

SK

Suren Kirakosyan in pro.elixir
источник

B

Bogdan in pro.elixir
Ну у тебя это все в один процесс грузится
источник

B

Bogdan in pro.elixir
Проверь по пиду
источник

B

Bogdan in pro.elixir
Значит и асинхронности не будет
источник

SK

Suren Kirakosyan in pro.elixir
ок
источник

B

Bogdan in pro.elixir
Чтобы асинхронно они выполнялись это нужен регистри
источник

B

Bogdan in pro.elixir
Вообщем почитай elixir in action сэкономишь кучу времени
источник

T

Tharin in pro.elixir
Suren Kirakosyan
ну как я тебе и гвоорил
источник

T

Tharin in pro.elixir
ты вызываешь GenServer.call
источник