Size: a a a

Java Web and more

2020 September 23

RS

Ruslan Stelmachenko in Java Web and more
метод же выполняется в потоке
источник

Д

Дмитрий in Java Web and more
Да, но вопрос поставлен так, что нам не обязательно останавливать поток) замеряем время выполнения и кидаем искл или деф ответ)
источник

RS

Ruslan Stelmachenko in Java Web and more
Для этого метод должен выполняться в другом потоке, нежели замеряющий код.
Можно конечно в АОП выполнять метод в каком-то тредпуле, вместо текущего потока, но это уж совсем какое-то извращение:)
источник

Д

Дмитрий in Java Web and more
Хотя я не прав
источник

Д

Дмитрий in Java Web and more
Нет нет, я не правильно понял задачу, и подумал что можно в аоп просто замерить время до вызова метода, после, проверить на ограничение в 1 сек. Все в рамках одного треда
источник

Д

Дмитрий in Java Web and more
Котлин и корутины вроде позволяют такую фишку провернуть
источник

RS

Ruslan Stelmachenko in Java Web and more
Ну а какой смысл выполнять метод полчаса, чтобы потом проверить, что он выполнялся дольше одной секунды и кинуть исключение, а не результат, который уже получен? :)
источник

Д

Дмитрий in Java Web and more
Ruslan Stelmachenko
Ну а какой смысл выполнять метод полчаса, чтобы потом проверить, что он выполнялся дольше одной секунды и кинуть исключение, а не результат, который уже получен? :)
Это другой вопрос)
источник

AE

Alexandr Emelyanov in Java Web and more
Дмитрий
Котлин и корутины вроде позволяют такую фишку провернуть
Да, там можно прибить корутину по тайм-ауту. Вебфлакс тоже это позволяет сделать
источник

AE

Alexandr Emelyanov in Java Web and more
Антон
Hystrix не подойдёт?
Там можно сделать тайм-аут на запрос, но именно на запрос, со стороны апи гейтвея. Но при этом выполнение в целевом сервисе будет продолжаться, а гейтвей его ждать не будет и вроде отдаст ответ
источник

C

Captcha bot in Java Web and more
Fm, если ты не бот, нажми "семь". Ботов удалено: 256.
источник
2020 September 24

DS

Dmitry Shut in Java Web and more
Alexandr Emelyanov
Там можно сделать тайм-аут на запрос, но именно на запрос, со стороны апи гейтвея. Но при этом выполнение в целевом сервисе будет продолжаться, а гейтвей его ждать не будет и вроде отдаст ответ
В хистриксе можно делать таймаут на выполнение метода с помощью hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds которую через hystrixproperty можно поставить непосредственно на метод
источник

C

Captcha bot in Java Web and more
Bdndjdkd, если ты не бот, нажми "пять". Ботов удалено: 257.
источник

VM

Vladimir Mokeev in Java Web and more
А стандартный джавовский Future не подходит?
источник

VM

Vladimir Mokeev in Java Web and more
У него есть метод
get(long timeout, TimeUnit unit)
источник

VM

Vladimir Mokeev in Java Web and more
Или автор хочет ограничить глобально. Тогда можно BPP свой написать и обернуть в прокси. С использованием future.
источник

VS

Vitaly Sirotkin in Java Web and more
Ruslan Stelmachenko
Ну а какой смысл выполнять метод полчаса, чтобы потом проверить, что он выполнялся дольше одной секунды и кинуть исключение, а не результат, который уже получен? :)
У нас подобная логика используется чтобы отдать пользователю извинения мол попробуйте чуть позже, а самим в это время делать какую то очень долгую операцию. Которая иногда исполняется очень быстро :))
А ждать долго не хочется чтобы не держать тыщщи подключений или потоков
источник

AK

Anton Krasnov in Java Web and more
Dmitry Shut
В хистриксе можно делать таймаут на выполнение метода с помощью hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds которую через hystrixproperty можно поставить непосредственно на метод
hystrix помог
источник

HM

Halyna Mar in Java Web and more
Unit тесты и mock чем отличаются?
источник

l

legitzky in Java Web and more
моки используются в юнит тестах
если упрощённо - юнит тест проверяет логику одного какого-нибудь класса А, и когда этот класс хочет взять какие-нибудь данные из другого класса Б, то мок позволяет вернуть фиктивные данные из этого класса Б
фиктивные данные возвращаются с предположением, что класс Б работает корректно и мы не хотим никак вызывать/проверять его логику, поэтому такое тестирование и называется модульным, тк тестируется только один небольшой модуль (модуль/юнит/класс читай одно и тоже)
источник