
Yura
19.02.2018
17:06:13
Есть какой-нибудь коллбэк при старте Repo в ecto? Типа мне нужно в бд сделать обязательный запрос при старте приложения, но по сути я не знаю, когда именно оно будет запущено. Метот init() срабатывает после чтения конфигов (хотя в документации вроде как написано, что или после старта или после чтения конфигов, и это странно, это как угадывать нужно?)

Buckler
19.02.2018
17:29:47
Hello, Toha!
Please, calculate:
74+54=...
If you don't answer - you'll get banned from the channel...
Good luck!

Dmitry
19.02.2018
17:37:08
@phyxolog Такие вещи лучше всего решать на уровне аппликации (потому что, кто иной как не твоя аппликация лучше всего знает, когда ей нужно сходить в базу данных и когда считать себя запущенной). Но запросов в базу данных из init-ов лучше не делать. Приложение должно стартоваться и в случае, когда база данных отвалилась и корректно реагировать в этой ситуации. На случай, когда соединение в базу данных произошло, есть в DBConnection возможность after_connect - callback ( https://hexdocs.pm/db_connection/DBConnection.html#start_link/2-options ) использовать. Но он будет соответственно вызываться каждый раз, когда соединение пропало и снова вернулось.

Dmitry
19.02.2018
19:11:10
Ребятки, срочная задача по экономике!
Есть бек на Фениксе и фронт на реакте.
Нужно максимально дёшево сделать из этого работающий сайт на 1к подключений в пике, и желательно с CD

Google

Dmitry
19.02.2018
19:11:35
Скока стоит и как сделать
Ну и влепить фронт в виде ассетов для brunch не предлагать

Vladimir
20.02.2018
04:18:13
А что такое CD? :)

Dmitry
20.02.2018
05:01:07
Continues delivery
Тут дело не в тюнинге
Тут дело в дёшево и быстро сделать

Vladimir
20.02.2018
05:02:39
нууу, хуяк-хуяк в принципе занедорого можно сделать. но без CD.
скока стоит - я хз. расценки у всех разные

Alex
20.02.2018
10:35:19
слушайте, тут же у каждого второго докер в проде(у кого прод есть) - что почитать про docker net internals?
меня вот например очень занимает вопрос, что же такое lo в контейнере и как вообще ходят DNS запросы от приложения в контейнере до встроенного DNS докера.

Dmitry
20.02.2018
11:29:26
Кто нибудь писал тесты на :delete метод контроллера? что-то плохо гуглю, нужен пример =(

Aldar
20.02.2018
11:30:03
а чем собственно это отличается от других методов?

Roman
20.02.2018
11:34:02
1. Удалить сущность с id
2. Проверить, что get на удаленную сущность возвращает 404
3. ???
4. Profit

Google

Dmitry
20.02.2018
11:36:30
Это последовательность действий, а я конкретно про вызов контроллера говорил)
@hardliner да, я затупил малясь, но этот вопрос мне помог, спасибо)

Katerina
20.02.2018
12:01:27
Всем привет! есть вариант удаленный фултайм для Elixir.dev ( опыт именно с Elixir от года , а в веб разработке сеньер) по стеку - Elixir: v1.1.1 и выше, Phoenix Framework, Ecto, кому интересны детали, пожалуйста напишите мне!?

alteregoizm
20.02.2018
12:02:29

Katerina
20.02.2018
12:03:13
по вилке идеально в 4 сложиться
Приложение создано в помощь разведенным родителям. Позволяет управлять информацией, связанной с детьми, расписаниями родительских дней, предписанных судом, фиксировать и возмещать расходы на детей, а также общаться в чатах.
контракт подписывается с американской компанией AppClose, Inc.
На данный момент в продакшене доступны iOS и Android приложения, которые работают с backend’ом. могу скинуть ссылку, если интересно будет

alteregoizm
20.02.2018
12:05:04
ну вот так бы сразу, всегда у HR клещами инфу довытянуть нужно
а если красиво пост оформить, то думаю можно даже админов закрепить попросить

Katerina
20.02.2018
12:06:31
да, просто у вас тут рабочие моменты, не хотелось много писать)

Максим
20.02.2018
12:06:56
Всем привет! Сталкивался кто с проблемой запуска нескольких Registry?
supervisor(Registry, [:unique, :account_process_registry]),
supervisor(Registry, [:unique, :task_process_registry])
при старте выдаёт:
[info] Application redmine_bot exited: exited in: RedmineBot.start(:normal, [])
** (EXIT) an exception was raised:
** (ArgumentError) argument error
(stdlib) :ets.lookup(RedmineBot.Endpoint, :https)
(redmine_bot) lib/phoenix/endpoint.ex:575: RedmineBot.Endpoint.config/2
при чём тут конфиг не ясно, но стоит убрать один из супервизоров и все становится нормально

Aldar
20.02.2018
12:08:58

Katerina
20.02.2018
12:09:22
спасибо большое, сейчас сделаю

Dmitry
20.02.2018
12:09:44
@Slavenin Добавь в опции supervisor(Registry, [:unique, :account_process_registry], id: ...)
Чтобы разные у них были.

Alex
20.02.2018
12:23:31
слушайте, у меня довольно детский вопрос. как вы боретесь с race condition при асинхронном взаимодействии с третьей стороной?
сценарий примерно следующий: мы инициируем какую-то обработку у третьей стороны, нам выдают тикет, мы регистрируем ожидание на этот тикет, но коллбэк пришел раньше регистрации ожидания. коллбэк проебан, ожидание не дождется. классическая ситуация.
тут вообще есть какие-то решения в общем случае кроме как ретраи в обработчике коллбэка?

Dmitry
20.02.2018
12:30:39
Пример callback-а?
Имеется ввиду как в rest - callback, куда стучать с ответом?

Vlad
20.02.2018
12:31:39
pro.elixir

abc
20.02.2018
12:31:49
сразу после получения тикета положить его в ets какой нить и при получении колбэка проверять ets. или там такие наносекунды что и ets не успеть. или например при такой ситуации делать проверку тикета раз 5 с интервалом

Google

Alex
20.02.2018
12:33:57

dimcha
20.02.2018
12:33:58
а unknown-callbacks в очередь складывать не получится?
или инфу о тикете в колбеке передавать

Alex
20.02.2018
12:35:25
это тот путь, которым я пытаюсь идти, но это ну такое

dimcha
20.02.2018
12:36:34
можно таймаут вешать на обработку неизвестного колбека и проверять появление инфы о тикете. Но все-же, разумнее, имхо, передавать инфу тикета с колбеком

Dmitry
20.02.2018
12:38:39
Псевдокодом я бы делал так:
id <- get_ticket(id)
register(self, id) -> если есть ожидающий, то сразу шлет сообщение.
callback -> get(id) делает что-то типа lookup_subscribe(id) - если есть уже регистрация, то возвращает там пид, если
нет то добавляет сабскрипшион, который вызовется вовремя register и уходит в wait
- при условии, что запросы в registry линеаризируются.
По сути сделал бы регистрацию, которая lookup_or_wait функцию предоставляла и оная бы на callback-е зависала.

Katerina
20.02.2018
12:46:02
Удаленный фултайм для Strong Middle Elixir developer в команде из 5 разработчиков и 2 тестировщиков , со стеком Elixir: v1.1.1 и выше, Phoenix Framework, Ecto и подписанем контракта с компанией AppClose, Inc на проекте созданом в помощь разведенным родителям ,на данный момент в продакшене доступны iOS и Android приложения, которые работают с backend’ом, по ставке район $4k, кому интересно, пишите!

Константин
20.02.2018
12:47:10
Круто))

Igor
20.02.2018
12:48:11
Ничего себе

Анастасия
20.02.2018
12:48:18

Artem
20.02.2018
12:48:43

Igor
20.02.2018
12:49:46
Есть медиана по ЗП по junior middle senior для эликсира?

Katerina
20.02.2018
12:50:52

Анастасия
20.02.2018
12:51:38

Yaroslav
20.02.2018
12:52:39
Elixir v1.1.1 это какой-то мамонт

Mi
20.02.2018
12:52:57

Анастасия
20.02.2018
12:53:25
??♀️

Google

Aliaksandr
20.02.2018
12:53:39
Кстати, когда-то не так давно видел на гитхабе подборку тестовых заданий по эликсиру, никто не натыкался случайно?

Dmitry
20.02.2018
12:54:00
https://appclose.com/
По названию фирмы можно найти.

Katerina
20.02.2018
12:54:14

Aldar
20.02.2018
12:54:45
coparents, новое слово для меня

Yaroslav
20.02.2018
12:55:39
Что-то про shared time родителей?

Aldar
20.02.2018
12:55:48
феникс интересно какой версии)

Никита
20.02.2018
12:55:55
Это кто? Это мой сородитель)

Yaroslav
20.02.2018
12:56:44
@hardliner 1.0.3
или рядом)

Aldar
20.02.2018
12:57:06

Yaroslav
20.02.2018
12:57:13
загуглил)

Vasiliy
20.02.2018
12:57:53
просто прибавляете приставку ко- и получаете новую сферу услуг

Yaroslav
20.02.2018
12:59:28
@hardliner судя по GH, там может быть phoenix либо 1.0, либо 1.1
вот почему нельзя просто взять и обновиться на стейбл версию...
а то как это поддерживать ><

Aldar
20.02.2018
13:03:03
в 1.3 фениксе удобные fallback контроллеры

Dmitry
20.02.2018
13:03:36
@y_zee Что такое GH?

Yaroslav
20.02.2018
13:03:45
github же

Dmitry
20.02.2018
13:04:01
А, ясно.

Google

Dmitry
20.02.2018
13:17:04
Все как везде - либо ты обновляешься, либо заколачиваешь бабки.
Вот я люблю обновляться (

Yaroslav
20.02.2018
13:19:07
@Virviil я заметил, человек-кровавый мерж

Dmitry
20.02.2018
13:48:22
Мы обновляемся и это не отнимает много времени, я беру 2-3 дня раз в несколько месяцев и обновляю все подряд на новые версии . Поэтому у нас Elixir 1.6.1 и все библиотеки в достаточно актуальном состоянии. Если это делать на регулярной основе - это не отнимает много времени.
П.с.: Этим даже всего один человек в комманде занимается.

Aldar
20.02.2018
13:50:59

Dmitry
20.02.2018
13:56:16
@hardliner У нас очень хардкорный backend не связанный с web, поэтому phoenix-а от силы 100 строчек на весь проект.

Andrey
20.02.2018
13:56:28
ну и всегда есть ретрограды которые считают что если работает, то нефиг трогать =)

Dmitry
20.02.2018
14:00:49
@couchemar Если делать регулярно и даже очень большой проект укладывается в эти несколько дней.