- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
% restarter.erl
-module(restarter).
% Save it to restart the node!
% где-то в коде при запуске приложения
....
ok = sync:go(),
sync:onsync(fun(Mods) ->
case lists:member(restarter, Mods) of
true ->
lager:warning("Restarting node!"),
init:restart();
_ -> ok
end
end),
....
Клуб веселых и находчивых эрлангеров.
Придумал такую фичу: если мне во время разработки надо перезапустить тестовую ноду, я просто жму сохранить в открытом файле restarter.erl
Sync подхватывает пересохраненный файл, компилит его и вызывает коллбэк со списком измененных модулей. Собственно, если рестартер среди них, то нода перезапускается :)
Vasiliy 16.01.2014 16:15 # 0
tirinox 16.01.2014 16:21 # +1
Мне кажется, тру-эрлангеры берут какой-нить emacs и назначают там на какое-нить C-E C-R действие на вызов этой ф-ции.
roman-kashitsyn 16.01.2014 16:48 # +3
Если интересно, есть статья на русском
tirinox 16.01.2014 16:55 # 0
Я уже так пробовал... удобно, только Емакс не переношу :)
Vasiliy 16.01.2014 16:52 # 0
tirinox 16.01.2014 16:54 # 0