|
|
|
нужен простой пример завершения некоего java-вызова по таймауту
|
|||
|---|---|---|---|
|
#18+
подскажите, как правильно и просто можно контроллировать по времени выполнение некоей функции F которая может зависнуть на очень долго. Нужно через 3 минуты выполнение обрубить и выдать ошибку. Я сам в яве совсем не спец! )) Cпасибо заренее! P.S. Среда разработки: Talend. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2017, 19:15 |
|
||
|
нужен простой пример завершения некоего java-вызова по таймауту
|
|||
|---|---|---|---|
|
#18+
В общем случае - никак. P.S. Вы, конечно, можете накостылять решение для некоторых частных случаев, но делать этого не надо. Совсем. P.P.S. Один из "некоторых частных случаев" - запуск "проблемной функции" в отдельном потоке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2017, 20:54 |
|
||
|
нужен простой пример завершения некоего java-вызова по таймауту
|
|||
|---|---|---|---|
|
#18+
DBAshnik, Выполнить вызов функции в другом потоке и попытаться получить результат выполнение с указанием максимального времени ожидания. (см. ExecutorService, Future, ScheduledExecutorService) а в Unit-тестах есть специальная аннотация . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2017, 21:10 |
|
||
|
нужен простой пример завершения некоего java-вызова по таймауту
|
|||
|---|---|---|---|
|
#18+
cпасибо! Буду изучать! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 16:57 |
|
||
|
нужен простой пример завершения некоего java-вызова по таймауту
|
|||
|---|---|---|---|
|
#18+
DBAshnikподскажите, как правильно и просто можно контроллировать по времени выполнение некоей функции F которая может зависнуть на очень долго. Нужно через 3 минуты выполнение обрубить и выдать ошибку. Сильно зависит от того по какой именно причине "функция" зависает. Если это какой-то цикл который много вычислений делает (занимает CPU), то единственным безопасные вариантом является проверка некого флага. Например Thread.isInterrupted() Если же "функция", в основном, блокируется на ожидани чего-то (данных от аппаратного обеспечения или освобождения критического ресурса) то из таких блокировок можно через тот же Thread.interrupt() перехватывая и обрабатывая InterruptedException. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2017, 17:04 |
|
||
|
|

start [/forum/search_topic.php?author=%D0%BF%D0%BE%D0%BC%D0%BE%D0%B3%D0%B8%D1%82%D0%B5+%D1%81+ASE+%D0%BF%D0%BE%D0%B4+%D0%BB%D0%B8%D0%BD%D1%83%D1%85&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
59ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
| others: | 666ms |
| total: | 848ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...