|
|
|
нужен простой пример завершения некоего 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/topic.php?fid=59&msg=39559243&tid=2122434]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
73ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 384ms |

| 0 / 0 |
