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