@proelixir

Страница 935 из 1045
Dmitry
20.04.2018
09:52:11
Если кому нибудь надо

Артем
20.04.2018
09:52:52
хотя вроде можно юзать 2.1.1 без этого. короче, надо пробовать... хочется пока хостед решение

MrFlorius
20.04.2018
09:59:18


*IO.inspect

Google
Konstantin
20.04.2018
10:41:07
Могу поделиться контейнером для феникса
Кидай ссылку, лишним не будет

Dmitry
20.04.2018
10:46:27
у меня есть феникс в докере, может пригодится кому, https://github.com/SofaKing18/phoenix_docker_example

а если кто-то еще на ошибки укажет - будет вообще супер ;)

Dmitry
20.04.2018
11:56:13
https://github.com/Virviil/asdf-elixir-docker

https://hub.docker.com/r/virviil/asdf-elixir/tags/

Если использовать для CI - то всё понятно.

Если для dev environment - надо прокинуть папку с проектом в контейнер, а deps, _build, .elixir_ls - наружу из контейнера для кеша

Использую для всех легаси эликсир проектов

Ну и для не легаси тоже

Dmitry
20.04.2018
14:34:23
Вчера тут генсервера обсуждали неплохо так, а может кто-нибудь подсказать? Можно как-то выяснить выстраилась ли в генсервере очередь из сообщений или нет

интересует длина очереди

Vladimir
20.04.2018
14:40:45
i/1 вроде возвращает длину очереди

а в чём надо, в байтах или в элементах?

Google
Igor
20.04.2018
14:44:05
@JustStealIt erlang:process_info(Pid, [message_queue_len]).

I
20.04.2018
14:55:39
я бы еще предложил через distillery собирать контейнер

и через Multi-Stage, у меня так коллега сделал, вышло круто

Спасибо)
плюс CMD добавить можно =)

Shumilkin
20.04.2018
15:42:21
Всем привет. Наткнулся на вот такое и не знаю, как победить query = App.Post |> distinct([p], p.id) |> order_by([p], [p.name]) Ecto.Adapters.SQL.to_sql(:all, App.Repo, query SELECT DISTINCT ON (p0.\"id\") * FROM \"posts\" AS p0 ORDER BY p0.\"id\", p0.\"last_name\» т.е. distinct блокирует order_by хелп

MrFlorius
20.04.2018
15:54:30
Добрый день, а можно ли уже созданному супервизору дочерний процесс добавить?

Dmitry
20.04.2018
15:55:57
@MrFlorius Да. https://hexdocs.pm/elixir/Supervisor.html#start_child/2

MrFlorius
20.04.2018
15:56:40
Спасибо, сам читал - заглупил и просмотрел

А остановить из дочернего процесса supervisor?

Alexander
20.04.2018
18:05:37
Я не уверен, что процесс знает кто его супервизор, если это специально не сообщать нему при старте и не хранить

Можно быстро упасть достаточно раз, чтобы супервизор сдался. Но может не сработать :)

Анастасия
20.04.2018
18:14:52
MrFlorius
20.04.2018
18:15:23
Для временной задачи

Запускается супервизор и процесс

Как только задача завершена, процесс посылает сигнал супервизору убиться

Анастасия
20.04.2018
18:18:14
по идее можно останавливать процесс и повесить триггер чтобы супервизор тоже останавливался

Google
Alexander
20.04.2018
18:18:47
Я не нашёл колбэка на выход чайлда

У супервизора

Вообще наверное уже есть какие-то супервизоры, можно к любому из них прицепить, со стратегией перезапуска :transient

Или сделать специальный супервизор для таких задач, и не париться что он висит без чайлдов

Анастасия
20.04.2018
18:24:51
я мало работала с супервизорами, но зачем они если нельзя отловить завершение процесса, по-любому можно

даже без супервизора слинкованый процесс можно отследить, просто в handle_info отлавливать по идее https://blog.codeship.com/linking-monitoring-and-supervising-in-elixir/

Igor
20.04.2018
19:30:16
не знаю как в эликсире, но в эрланге нельзя переопределять реакцию на падение child в стандартном супервизоре. Есть сторонние реализации где это можно сделать.

Alexander
20.04.2018
19:42:19
Простой способ сделать ровно то что просят - отдавать pid супервизора чайлду, и там что-то делать при выходе. Но вероятно можно сделать как-то умно, но не то что прямо просят.

Igor
20.04.2018
20:04:39
непонятно вообще зачем для временной задачи запускать отдельного супервизора, с одни единственным чайлдом, чтобы потом его останавливать по её завершению

проблема тут в задумке как мне видется

если для ваших задач есть смысл в перезапуске процессов в случае падения, то проще на всех на них завести один супервизор

если нет, то можно и вовсе без него обойтись

Alexander
20.04.2018
20:10:39
Отдельный супервизор для всех временых задач

Чтобы вести учёт и запускать после падения, если надо

Так бы сделал я

Igor
20.04.2018
20:11:01
ну или для класса задач

Alexander
20.04.2018
20:12:35
Task.Supervisor

Артем
21.04.2018
04:41:32
spawn_link есть, зачем отдельный?

монитор есть опять же

Alexander
21.04.2018
06:03:50
spawn_link есть, зачем отдельный?
Чтобы не ронять породивший процесс и не морочиться с ловлей exit сигналов

Google
Alexander
21.04.2018
06:11:32
для этого есть spawn
А если процесс упадёт, то есть spawn_link, trap exit и monitor

А всё вместе это супервизор

В принципе я регулярно без otp, спавн и забыл. Но это не рекомендованный способ

Артем
21.04.2018
06:13:00
вот только супервизор сделан не для этого

Для временной задачи

Как только задача завершена, процесс посылает сигнал супервизору убиться

не любая формулировка задачи правильная

для этого скорее существует генсервер

надо выполнить задачу - отправили ему колл

выполнил задачу - ждёт следующей

а генсервер контролируется уже супервизором

Yuri
21.04.2018
07:26:12
Про супервизоры читайте Фреда Хеберта. Сперва книгу, потом блог. Досконально все расписано.

https://ferd.ca/the-hitchhiker-s-guide-to-the-unexpected.html

Dmitry
21.04.2018
07:46:27
Супер! Это как раз статья о том, как стать архитектором)

Артем
21.04.2018
11:33:28
посоны

а кто-то осилил graphql ?

Alik
21.04.2018
11:37:17
Угу

Sergey
21.04.2018
11:41:08
Артем
21.04.2018
11:48:20
и как, absinthe хорош?

Google
Sergey
21.04.2018
11:50:52
и как, absinthe хорош?
а, не, я на python только с graphene работал. Но там немного грустно, так как чувак, который написал эту либу перекатил из js. В итоге, она немного странно написана.

Dmitry
21.04.2018
11:52:54
"But the real interesting stuff comes from the crossover with model checking, and there, few property-based testing frameworks across all languages do it as well as most of the Erlang ones (Python's Hypothesis is always good; StreamData in Elixir has no support for this, and none is actually planned either although some community members want it)" - о в блоге у ferd-а есть обновление.

Про StreamData

Alik
21.04.2018
11:53:30
Dmitry
21.04.2018
11:55:01
@avfomin В общем, если то, что ferd - написал и это так и будет, то конечно жаль, прийдётся дальше proper использовать.

https://ferd.ca/the-hitchhiker-s-guide-to-the-unexpected.html - кстати, я и забыл, что у него есть такая крутая статья, где он объясняет как делается model-based testing (в смысле property-based testing для state machine).

Aleksandr
21.04.2018
12:04:11
@avfomin В общем, если то, что ferd - написал и это так и будет, то конечно жаль, прийдётся дальше proper использовать.
мне плохо знакома эта методология, спасибо за ссылку) Как я понял из доклада Андреа, им тупо нужны руки, они планируют часть функциональности делать в рамках GSoC

а кто-то осилил graphql ?
вот кстати репо с воркшопа по graphql на ElixirConfEU https://github.com/sjchmiela/pokedex

Страница 935 из 1045