
Dmitry
05.03.2018
10:31:16
Т.е. открытых issue == 0.
Vladimir Открытые issue есть? https://github.com/ericmj/ex2ms/issues Нету. "были какие-то баги" => Но при этом не открыто ни одного bug репорта.

Vladimir
05.03.2018
10:32:33

Максим
05.03.2018
13:05:36

Google

Dmitry
05.03.2018
13:11:48
@Slavenin Так
def handle_event(type, event, state) do
...
end

Максим
05.03.2018
13:12:08
он в этом режиме тоже будет работать?

Dmitry
05.03.2018
13:12:21
Да.

Максим
05.03.2018
13:19:12
благодарю

Vladimir
05.03.2018
13:24:21
Но в целом да, если что-то можно написать без макросов - нужно писать без макросов.


Vladimir
05.03.2018
13:25:57
ну parse_transform в Эрланге это ядерное оружие которое применяют только по праздникам, и только если без этого никак.
Нет такой беды как в Эликсире.

Vladimir
05.03.2018
13:31:35
В Clojure макросы без крайней нужды тоже не используют. А эликсир... мне кажца, что такое обилие макросов встречается искоючительно из-за того, что "потомушто можно". Самоограничений нет и dialyzer не используют. А потом проблемы возникнут.

Dmitry
05.03.2018
13:53:33
Vladimir Помимо рекордов что еще в ex2ms не работало?

Vladimir
05.03.2018
13:54:11
остальное не проверял, мне нужны были именно они

Максим
05.03.2018
14:44:10
Подскажите, есть Registry, запускается как supervisor(Registry, [:unique, :account_process_registry], id: :RegistryAcoount), процессы добавляются через {:via, Registry, {:account_process_registry, account_id}} но Registry.lookup(:account_process_registry, id) ничего не находит. Что я сделал не так?

Никита
05.03.2018
14:56:31
:RegistryAcoount ?)

Yury
05.03.2018
15:42:58
iex(1)> [:a
...(1)> ,:b
...(1)> ]
** (SyntaxError) iex:2: syntax error before: ','
Только мне кажется syntax error тут странным? в Erlang так писать можно

Google

Vladimir
05.03.2018
15:43:59
бага наверное

Zwei
05.03.2018
15:56:36
Не знаю как после Эрланга, а после Руби не кажется странным
Тоже бэкслэши дописывать нужно
iex(3)> [:a \
...(3)> ,:b \
...(3)> ]
[:a, :b]

Yury
05.03.2018
16:11:06
буду знать, спасибо

Dmitry
05.03.2018
16:15:11
ex2ms из мастера поддерживает рекорды теперь.

Alex
05.03.2018
16:51:51

Dmitry
05.03.2018
18:25:15
А на последней зачем?

?
05.03.2018
18:44:06

Vladimir
05.03.2018
18:55:56
И чтобы в гите не было лишнего, когда ты только запятую поменял в строчке

Максим
05.03.2018
19:09:14
Вот из-за таких разночтений мне эликсир рвёт мозг непрерывно

Alex
05.03.2018
20:52:36

Azat
06.03.2018
02:37:21
А мне нравятся макросы, кол-во бойлерплейт кода можно уменьшить с их помощью
https://yos.io/2016/04/24/mixins-in-elixir/
Няшно ведь

Alex
06.03.2018
04:07:27

Evgeny
06.03.2018
07:14:48
макросы на эликсире читать тяжко, да же те, которые сам написал :)
так что да, как можно меньше

Dmitry
06.03.2018
07:25:36
Use это вообще не считай не макрос - эта штука которую вообще все знают
Это такой же макрос как if

Максим
06.03.2018
07:29:10

Google

Evgeny
06.03.2018
07:29:37
Acount

Никита
06.03.2018
07:29:43
Ну вопрос к куче опечаток в коде))
в одном месте Account в другом Acoount
и там еще куча была)

Максим
06.03.2018
07:30:00
он запускался с той же опечаткой

Evgeny
06.03.2018
07:30:03
:D

Максим
06.03.2018
07:30:32
при чём тут опечатки? как найти процесс в регистри?

Артем
06.03.2018
07:38:39
@Virviil а нет ли каких-то хотя бы примеров использования agala, раз доки нет? имхо сча проще собрать лонг поллинг на своём генсервере чем пытаться в коде разобраться

Максим
06.03.2018
07:49:18
блин, оно в нескольких ets лежит Х_Х
причём с отправкой сообщений проблем нет
только поиск не работает нифига

Артем
06.03.2018
08:01:08
оо, тебе удалось запустить эту тулзу

Максим
06.03.2018
08:01:25
а есть с этим проблема?
два основных условия: нода запущена через —name и —cookie равны
при этом обзервер запущен локально, а нода на серваке
хрень какая-то.... похоже пора переходить на gproc
думал втроенными средствами обойтись
но похоже не судьба...

Артем
06.03.2018
08:20:47
@midster хотелось бы уточнить, что вставить в else:
def check_exchanges_connections() do
current_time = :os.system_time(:milli_seconds)
:ets.tab2list(:trade_timestamps)
|> Enum.each(fn trade_timestamp ->
{stream_name, last_data_timestamp} = trade_timestamp
if current_time - last_data_timestamp > 60_000 do
Nadia.send_message(Application.get_env(:nadia, :chat_id), "Stream #{stream_name} - last data recieved #{current_time - last_data_timestamp} ms ago")
end
end)
{:ok}
end

Google

Dmitry
06.03.2018
08:23:27
@Slavenin Registry.lookup(registry, key) - вот так процесс находится в Registry.

Максим
06.03.2018
08:23:52
Registry.lookup(:task_process_registry, id)

Dmitry
06.03.2018
08:36:24
@Slavenin https://gist.github.com/liveforeverx/64e28863ea8ccf398c6ca62950c74a9c
Работает.
Как регистрируются аккаунты? Можно ещё код посмотреть?
Кусок, где они регистрируются

Максим
06.03.2018
08:37:12
да, я разобрался уже, пытался найти процесс до его попадания в регистр :)

Dmitry
06.03.2018
08:38:22
Ок ?

Максим
06.03.2018
08:41:58
благодарю за помощь!?
кстати, может, кому интересно будет, наткнулся на забавный пример регистра с самоуничтожающимися процессами https://github.com/amokan/registry_sample/blob/master/lib/registry_sample/account.ex
кстати, к вопросу об универсальном перехватчике в fsm, при callback_mode: :state_functions handle_event не работает
пытается найти функцию, последнего состояния
с соответсвующими параметрами

Alex
06.03.2018
08:47:54
все, что лежит в памяти, будет продолбано
все, что лежит в памяти, сожрет всю память при скачке нагрузки

Google

Alex
06.03.2018
08:53:16

Максим
06.03.2018
08:53:30
о_О
при таком варианте handle_event должен перехватывать любой вызов, для которого нет callback
либо я чего-то не понял

Alex
06.03.2018
08:55:02
handle_event({call,From}, code_length, #{code := Code} = Data) ->
{keep_state, Data, [{reply,From,length(Code)}]}.пример из документации. не замечаешь разницу?
стоп, нет

Максим
06.03.2018
08:55:28
мне не нужен call, мне нужен cast

Dmitry
06.03.2018
08:56:16
Это у меня только скриншоты обрезаны?
Что не понятно до конца что там произошло вообще.

Максим
06.03.2018
08:57:21
процесс TaskFsm находится на стадии finish