
Dmitry
26.09.2017
22:04:09
Как вам идея:
Если нету пока что супервизора - запускаем.
Если есть - то Process.link его в остальных. Тогда если нода упадёт - все супервизоры тоже и перезапустятся, вот только после перезапуска уже не будет в регистре нифига
И один из них сможет запуститься
Но может идея с воркером и супервизором под капотом ещё лучше
А нетворк сплит - это непобедимая хреня

Google

Dmitry
26.09.2017
22:06:25
Разве что трахать внешнее апи
Хм... пока мы тут бегали сняв штаны, в 1.5 Эликсире вообще другая технология производства Supervisor ов
И она крутая, ага )
И всё равно не понимаю, как сделать чтобы дети сами не запускались...

Dmitry
26.09.2017
22:36:18
Ну, поэтому мне locker и swarm нравятся, два нативных, компактных решения, решающих network split проблему.
В 1.5 функционально ничего не добавили, но сделали действительно удобно с child_spec-ом.

Dmitry
26.09.2017
22:37:59
Я чёт не могу понять, в какой момент он запускает воркеры
Ааа, всё
Я понял
Либо запускает всё, что есть в ините
Либо надо через start_child

Dmitry
26.09.2017
22:40:50
Supervisor.start_child(sup, spec)

Alexey
26.09.2017
22:41:27
ога

Google

Dmitry
26.09.2017
22:42:01
Я почему то был убеждён, что надо в ините задать все спеки
А потом в старт_чайлд тольо выбрать

Alexey
26.09.2017
22:42:19
будет 1) суп, которому подчиняются 2) гс и 3) суп.
если надо воркера создать, то 2 будет их досоздавать через 3

Dmitry
26.09.2017
22:42:19
И поэтому тупил сидел

Dmitry
26.09.2017
22:42:40
Есть такой способ, только в таком случае задаётся только один спек.
И в стартчаилд передаются только аргументы.
Стратегия: simple_one_for_one

Alexey
26.09.2017
22:44:29
и тип перманент

Dmitry
26.09.2017
22:44:30
да, я знаю
я думал просто там все такие стратегии )
Как то раньше не задумывался о старте воркеров не сразу
Наверное, так и навелосипежу

Alexey
26.09.2017
22:45:32
но вообще это выглядит, как хак или костыль.

Dmitry
26.09.2017
22:45:52
А то кто-то решит к себе в прогу засунуть моего бота, и переконфигурирует swarm к примеру
И кто тогда нехрен пойдёт? прально, я
Утону в issues на ГХ

Dmitry
26.09.2017
22:52:55
Самой библиотеке не нужно встроенное решение дистрибутирования, если она другую задачу решает.
Имхо

Dmitry
26.09.2017
22:53:42
Это звучит правильно
Только мозгов не хватает выкинуть

Google

Dmitry
26.09.2017
22:57:01
Лучше тогда сделать, чтобы бот не с аппликацией стартовался, а предоставить пользователю супервизора со start_link позволять уже где нужно пользователю самому стартовать.....а он уже сам решит, global, swarm или что ещё, а так же и сколько копий оных.

Dmitry
26.09.2017
22:57:23
Смотри как у меня

Dmitry
26.09.2017
22:57:34
Где?

Dmitry
26.09.2017
22:58:24
https://github.com/BucklerBot/buckler/blob/master/apps/buckler_bot/lib/buckler_bot/application.ex
Запускается супервизор
Сколько супервизоров - столько ботов
В супервизоре просто воркеры - с именами
В этом проблема
https://github.com/agalaframework/agala/blob/develop/lib/bot/bot.ex
Можно конечно везде в параметры метода засунуть Пид
И типо ебитесь как хотите
но чёт не очень
Ещё можно в конфиг запихнуть via_yuple колбэк
Но только сильно ли это поможет

Dmitry
26.09.2017
23:08:15
Не, иметь имя полезно, только не глобальное.
Завтра посмотрю код, я с телефона уже

Dmitry
26.09.2017
23:12:39
А может реально взять swarm и всё
Не париться
Зато всё из коробки и круто работает
Просто если определишь
def handle_cast({:swarm, :end_handoff, delay}

Google

Dmitry
26.09.2017
23:13:33
То это как бы уже всё понятно

Alexander
27.09.2017
02:11:06
http://telegrammy.net/group/proelixir/page733.htm
вот что нашел, почти полный лог нашего чатика

Константин
27.09.2017
02:52:28
Крутотеечка))) вспомнил как все начиналось))

Alexander
27.09.2017
03:29:48
нашел, как я сюда пришел. На пару месяцев позже чем основной костяк )
кстати, никто не видел Rumata?
я помню он очень активным был

Константин
27.09.2017
04:05:29
Ага, пропал парень((
Наверно в js ушел
Прикол в том, что я его в группе не вижу и в бане тоже
видать реально ушел

Alexander
27.09.2017
04:09:34
последнее что я помню, он пытался донести, мол всем на эликсир насрать
это кстати так и есть
сейчас всем подавай nodejs

Константин
27.09.2017
04:25:59
полностью соглашусь с тобой
ощущение, что язык не взлетел из-за самого эрланга
многопоточность крутая, все норм, но оно нафиг не нужно))) сайты того не требуют, при этом нужны надежность языка и стабильность развития.
а один человек не может сравниться с компанией
а почему из-за эрланга - деплой косячный. Php7 и деплоится просто и по скорости все норм

Google

Slava
27.09.2017
04:43:35
да ладно вам.
эликсир хоть и все еще экзотика, но медленно врывается в этот мир.
например, далеко не все новорожденные языки могут похвастаться добротной экосистемой для вебразработки со старта.
вот у crystal'a все плохо пока что, но там даже сам язык еще не готов. у rust'a в вебе нет ничего и близко подобного фениксу.
я бы скорее сказал, что людей отпугивает фунцкиональная парадигма, которая все же немного ломает мозг после императивщины и ООП. хотя, имхо, эликсир делает это мягче всех (по крайней мере для рубистов).
а так вон даже thoughtbot себе на вооружение взяли эликсир, чем не перемога
https://thoughtbot.com/services/elixir-phoenix
"If you like Rails, but wish it were much faster, a bit more expressive and functional, then Phoenix is worth getting acquainted with."
опять таки, очень валидное замечание с их стороны, на мой взгляд.


Alexander
27.09.2017
05:19:53
поэтому хоткод релоад по пизде идет в CD
да ладно вам.
эликсир хоть и все еще экзотика, но медленно врывается в этот мир.
например, далеко не все новорожденные языки могут похвастаться добротной экосистемой для вебразработки со старта.
вот у crystal'a все плохо пока что, но там даже сам язык еще не готов. у rust'a в вебе нет ничего и близко подобного фениксу.
я бы скорее сказал, что людей отпугивает фунцкиональная парадигма, которая все же немного ломает мозг после императивщины и ООП. хотя, имхо, эликсир делает это мягче всех (по крайней мере для рубистов).
а так вон даже thoughtbot себе на вооружение взяли эликсир, чем не перемога
https://thoughtbot.com/services/elixir-phoenix
нифига он не захватит, тот же феникс был говнищем и остался им же. А больше в языке флагманов нет, которые бы и были драйвером развития.
тот же руби нахрен никому не уперся, пока рельса не полетела
потом уже распробовали куча замкнутых экосистем на рубях пишутся
тот же homebrew для мака


Константин
27.09.2017
05:30:17
я тут пару дней думаю над тем, что надо научиться юзать язык без фрэймворков, а потом уже в них уходить
тестовой задание тут прилетело, в нем надо было на PHP OOP движек для блога замутить
дали 8 часов, я не справился)))
Писал что-то без готовых библиотек и yii фрэймворка лет 5 назад
Хотя мое решение показалось мне очень прикольным, столько идей в голове крутилось и даже разрабатывать было интереснее
А может просто замахнулся на что-то большее... реально писал MVC фрэймворк)))

Alexander
27.09.2017
05:35:34
феникс гниет заживо, коммиты раз в пару дней 1-2 коммита, кое-как 20 в неделю. Из которых 15 - это опечатки и дополнения в доки
тесты поломались МЕСЯЦ назад и всем похер
мерджы неделями висят вообще без комментов
там чуваки кто пулл реквесты кидает интересуется, есть кто живой
напоминает дело с Джанго