через супервизор как дочерний процесс. Пока инстансов было нужно 8, всё было окей, но когда их стало 32, появились проблемы, потому что время запуска увеличилось до почти 10 минут, причем каждый следующий child запускается дольше предыдущего примерно на то время, какое нужно для запуска первого (т.е. как будто они каждый раз запускаются заново, хотя трейс пакетов и логирование говорит, что нет, ровно 32 раза), прогрессия на графике почти идеальная выходит. Пройдя вниз по стеку добрались практически до supervisor:start_child, т.е. до и после тормозов нет. В чем может быть проблема?
перенесите инициализацию дочернего процесса в handle_continue из init.
Спасибо, попробую
А как это можно сделать, если старт потока делается при помощи start_child, а не start_link?
https://www.erlang.org/doc/apps/stdlib/supervisor.html#module-child-specification
Обсуждают сегодня