Tôi đang viết chương trình kết thúc máy chủ bằng Twitter Finagle. Tôi không sử dụng toàn bộ ngăn xếp máy chủ Twitter, chỉ là phần cho phép xử lý không đồng bộ (vì vậy Tương lai, Chức năng, v.v.). Tôi muốn các đối tượng trong tương lai để có timeout, vì vậy tôi đã viết này:Twitter Thời gian chờ trong tương lai không áp dụng cho toàn bộ chuỗi flatMap
Future<String> future = Future.value(some_input).flatMap(time_consuming_function1);
future.get(Duration.apply(5, TimeUnit.SECONDS));
time_consuming_function1
chạy lâu hơn 5 giây. Nhưng future
không hết thời gian chờ sau 5 giây và chờ đến khi time_consuming_function1
kết thúc.
Tôi nghĩ rằng điều này là do future.get(timeout)
chỉ quan tâm đến khoảng thời gian mà future
đã tạo để tạo chứ không phải toàn bộ chuỗi hoạt động. Có cách nào để hết thời gian cho toàn bộ chuỗi hoạt động không?
Cảm ơn sschaef đã chỉnh sửa – stackoverflower
Câu trả lời của tôi có đủ không? –