Size: a a a

2019 November 09

RI

Ruslan Ibragimov in Kotlin Moscow
Да
источник

RI

Ruslan Ibragimov in Kotlin Moscow
try-with-coroutines
источник

SM

Sergey Morgunov in Kotlin Moscow
Тогда не понял как будут утекать корутины в моём случае, когда у меня скоуп по сути локальная переменная в функции и скоуп умрёт как только завершится выполнение функции.
источник

RI

Ruslan Ibragimov in Kotlin Moscow
Можно представить что блок который передаден на выполнение внутри future{} может работать достаточно долго, и в таком случае когда запрос завершится, то block продолжит выполняться. Утечка
источник

SM

Sergey Morgunov in Kotlin Moscow
Ruslan Ibragimov
Можно представить что блок который передаден на выполнение внутри future{} может работать достаточно долго, и в таком случае когда запрос завершится, то block продолжит выполняться. Утечка
Имеешь ввиду если вышестоящий контроллер по какому-нибудь таймауту перестанет ждать завершения выполнения этой функции?
источник

RI

Ruslan Ibragimov in Kotlin Moscow
Завершиться может запрос по таймауту, или например если клиент отменил запрос.
источник

RI

Ruslan Ibragimov in Kotlin Moscow
Например в блоке несколько запросов в базу выполняется, можно было бы сразу отменить ненужные, т.к. клиент отвалился, а без scope привязанного к жизни http запроса он продолжит выполняться тратя ресурсы и приложения и базы в пустую
источник

SM

Sergey Morgunov in Kotlin Moscow
Ruslan Ibragimov
Например в блоке несколько запросов в базу выполняется, можно было бы сразу отменить ненужные, т.к. клиент отвалился, а без scope привязанного к жизни http запроса он продолжит выполняться тратя ресурсы и приложения и базы в пустую
Это я понимаю. Это хорошо ещё если в этом подвисшем блоке не будет каких-то операций на изменение данных, которых уже никак не ожидаешь после того, как получил таймаут от сервера
источник

RI

Ruslan Ibragimov in Kotlin Moscow
Ну транзакционность, или саги там это отдельная тема
источник

SM

Sergey Morgunov in Kotlin Moscow
Выходит что на клиентском уровне без патча фреймворка или написаний какого-нибудь HTTP фильтра хорошего решения у задачки не будет 🤔
источник

RI

Ruslan Ibragimov in Kotlin Moscow
А какой сервер используется фактически?
источник

SM

Sergey Morgunov in Kotlin Moscow
Akka HTTP 🙂
источник

SM

Sergey Morgunov in Kotlin Moscow
Если я конечно правильно вопрос понял 🙂
источник

RI

Ruslan Ibragimov in Kotlin Moscow
Да. Подозреваю что там есть контекст в HttpRequest, и там же recover функция судя по доке. Т.е. если у serviceCall есть доступ к HttpRequest, то у него можно сходить в контект, посмотреть есть ли Job, если нет Job создать и использовать. А в recover соответсвенно доставать Job и делать cancel
источник

SM

Sergey Morgunov in Kotlin Moscow
Значит я верно понял 🙂 Осталось это протащить ещё через 2 слоя фреймворков ))) Чувствую намечаются продуктивные выходные 😂
источник

SM

Sergey Morgunov in Kotlin Moscow
Руслан, а есть ссылка на готовый проверенный фильтр для Servlet-API, о котором ты говорил?
источник

RI

Ruslan Ibragimov in Kotlin Moscow
Нет, я сам сервлетами не пользуюсь) Просто как пример приводил
источник

AN

Alexander Nozik in Kotlin Moscow
@relizarov тут в московской UG вопрос встал. Я где-то у вас в коментах читал, что в нынешней концепции корутин не хорошо делать всякие независимые сущности вроде экранов, виджетов и прочего самостоятельными скоупами без предка. Я правильно понял линию партии?
источник

AN

Alexander Nozik in Kotlin Moscow
Да. Идея в том, что всегда есть иерархия.
источник

AN

Alexander Nozik in Kotlin Moscow
Однако, в каких-то frameworks (Android, например) может быть свой lifecycle managemenet и тогда coroutine scopes являются лишь обертками над уже существующими жизненными циклами.
источник