не используя метод start? Как я понял, последний не является suspend-методом.
Дело в том, что код, запускающий сервер, будет вызываться уже из runBlocking
можно и через start(wait = false) - и он не будет блокировать
Круто, но опять же, runBlocking есть внутри ApplicationEngine.start, а я запускаю сервер уже в runBlocking.
Или всё норм, если внезапно в runBlocking будет вызван ещё один runBlocking?
оно должно нормально работать вроде, если я правильно помню и оно продолжит блокировать поток просто
Если вы живте в корутинном мире, то там ни в коем случае нельзя делать runBlocking. Его можно вызывать один раз для попадания в корутинный мир
не совсем один раз конечно 🙂 но надо понимать, как и где его использовать
runBlocking? лучше вообще вне тестов не использовать. Ну и максимум один на независимый сервис
Ну да, я в курсе, поэтому я и спрашиваю, как запустить ktor-server, минуя start, который, в моём случае, ещё раз вызовет эту самую "точку входа в мир корутин".
А как же использование в качестве точки входа в асинхронное (или корутинное, я просто из мира Python) приложение? Тоже не надо?
просто надо правильно использовать например для интеропа того же, в общем, в документации нормально мне кажется написано зачем он а нужен он один раз или несколько это уже от кода зависит
никак иначе его не запустить можно ещё в отдельной корутине (launch на другом скоупе, не от runBlocking) запускать его и делать join на полченной Job
Можете попробовать посмотреть последние две серии нашего разговора с @neuradev: https://www.youtube.com/watch?v=t0AERgx0lrY и https://www.youtube.com/watch?v=AAFi_C40BOM. Если останутся вопросы - пишите. Ну и начинать, разумеется, лучше со статей и лекций Елизарова.
А жаль, ладно, буду что-нибудь придумывать, спасибо
Хорошо, посмотрю на досуге, спасибо
Обсуждают сегодня