Size: a a a

2020 August 18

МВ

Михаил Варнавский... in pro.elixir
ну да, тут наличие феникса ничего не меняет, просто к слову написал
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Михаил Варнавский
Всем привет. Объясните пожалуйста, в случае, когда есть феникс приложение, обращение к базе идет в один поток? Ну т.е. выполнение запросов последовательное?
В эликсире все конкурентное, до тех пор пока сам не попросишь сделать последовательно
источник

МБ

Максим Барулин... in pro.elixir
Можно запустить обсервер, включить полный трейс и утонуть в логах, ну или нужный кусочек фильтрануть
источник

МБ

Максим Барулин... in pro.elixir
Можно в дереве увидеть пул коннекшенлв
источник

МВ

Михаил Варнавский... in pro.elixir
вот почему вопрос возник: есть приложение, которое основную логику обеспечивает и работает с базой, соответственно использует экто. К нему по API цепляются другие компоненты системы. Вот я и подумал, что процесс, в котором экто работает, в итоге будет один и работать с базой будет соответствующим образом
источник

МВ

Михаил Варнавский... in pro.elixir
вопросы нубские, но пока въезжаю еще )))
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Михаил Варнавский
вот почему вопрос возник: есть приложение, которое основную логику обеспечивает и работает с базой, соответственно использует экто. К нему по API цепляются другие компоненты системы. Вот я и подумал, что процесс, в котором экто работает, в итоге будет один и работать с базой будет соответствующим образом
Процесс на запрос
источник

МВ

Михаил Варнавский... in pro.elixir
ага, отлично! Спасибо! ))
источник

AB

Alex Bubnov in pro.elixir
Михаил Варнавский
вот почему вопрос возник: есть приложение, которое основную логику обеспечивает и работает с базой, соответственно использует экто. К нему по API цепляются другие компоненты системы. Вот я и подумал, что процесс, в котором экто работает, в итоге будет один и работать с базой будет соответствующим образом
у тебя есть пул коннектов к базе, на каждый коннект - процесс.
воркер пула захватывается твоим кодом на транзакцию, в вырожденном случае - на отдельный запрос
источник

V

V in pro.elixir
Да, есть ещё параметр POOL_SIZE в конфиге феникса, по умолчанию 10
источник

МВ

Михаил Варнавский... in pro.elixir
Alex Bubnov
у тебя есть пул коннектов к базе, на каждый коннект - процесс.
воркер пула захватывается твоим кодом на транзакцию, в вырожденном случае - на отдельный запрос
таак, а я думал, что когда стартую приложение, у которого в зависимостях экто, то он сразу поднимает один коннект к базе и его использует, чтобы в процессе работы не тратить время на переконнекчивание
источник

МВ

Михаил Варнавский... in pro.elixir
V
Да, есть ещё параметр POOL_SIZE в конфиге феникса, по умолчанию 10
спасибо, сейчас почитаю про это дело
источник

AB

Alex Bubnov in pro.elixir
Михаил Варнавский
таак, а я думал, что когда стартую приложение, у которого в зависимостях экто, то он сразу поднимает один коннект к базе и его использует, чтобы в процессе работы не тратить время на переконнекчивание
так и есть, только он поднимает не один коннект, а целую пачку
источник

МВ

Михаил Варнавский... in pro.elixir
все, сложилось, спасибо еще раз. Как раз pool_size - это из Ecto.Repo
источник

МБ

Максим Барулин... in pro.elixir
Но стоит учесть, что если то самое приложение к которому все цепляются, это один генсервер, то в него тогда все и уткнется
источник

МБ

Максим Барулин... in pro.elixir
И тогда он будет работать в один поток, несмотря на 10 воркеров бд
источник

МВ

Михаил Варнавский... in pro.elixir
Это будет феникс, он же на каждое соединение отдельный процесс, создаёт, верно? Т.е. я создаю феникс приложение, из которого вызываю модуль, в котором прописана работа с БД. Сам модуль ген сервером не будет, а просто как библиотека, тогда должно быть нормально. Правильно я понимаю?
источник

МВ

Михаил Варнавский... in pro.elixir
Блин, запутался уже
источник

МВ

Михаил Варнавский... in pro.elixir
Итак, задача, по сути, создать для начала простой круд. Наверно с этого и начну гуглеж ))
источник

МВ

Михаил Варнавский... in pro.elixir
Хочу разделить слои работы с БД и внешнего api
источник