Żeby nie kontyunować dyskusji w komentarzach to tutaj napiszę.
Jeden wątek timeouter'a może obsłużyć (czyli "ztajmałtować") wiele jobów, po prostu wraz z odkładaniem się zadań timeoutujących na kolejke, timeout'y kolejnych jobów będą rosły jeśli kolejka od jobów będzie zatkana ostro, weźmy ten kod z przykładu wyżej lekko zmodyfikowany żeby zasymulować tą sytuację:
Kopiuj
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import java.util.concurrent.locks.LockSupport;
import java.util.function.Consumer;
public class Test
{
private static final ScheduledExecutorService timeouter = Executors.newSingleThreadScheduledExecutor();
private static final ExecutorService executor = Executors.newFixedThreadPool(4);
public static void main(String[] args)
{
long start = System.nanoTime();
for(int i = 0; i < 5; i++)
{
test(result -> System.out.println(result + " in: " + TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - start) + " millis"));
}
}
private static void test(Consumer<String> onFinishCallback)
{
CompletableFuture.supplyAsync(Test::someJob, executor)
.applyToEither(timeoutAfter(2, TimeUnit.SECONDS), response -> response)
.exceptionally(throwable -> "WARNING")
.thenAccept(onFinishCallback);
}
private static String someJob()
{
LockSupport.parkNanos((long) 5e9);
System.out.println("PROCESSED");
return "RESPONSE";
}
private static <T> CompletableFuture<T> timeoutAfter(long timeout, TimeUnit unit) {
CompletableFuture<T> result = new CompletableFuture<T>();
timeouter.schedule(() -> result.completeExceptionally(new TimeoutException()), timeout, unit);
return result;
}
}
To printluje:
Kopiuj
WARNING in: 2006 millis
WARNING in: 2019 millis
WARNING in: 2018 millis
WARNING in: 2018 millis
WARNING in: 2018 millis
PROCESSED
PROCESSED
PROCESSED
PROCESSED
PROCESSED
Zwiększmy i
do 10, tak żeby nadal był 1 wątek timeouter'a, oraz zatkana kolejka executora od jobów, wynik będzie:
Kopiuj
WARNING in: 2005 millis
WARNING in: 2024 millis
WARNING in: 2024 millis
WARNING in: 2024 millis
WARNING in: 2024 millis
WARNING in: 2024 millis
WARNING in: 2024 millis
WARNING in: 2024 millis
WARNING in: 2024 millis
WARNING in: 2024 millis
PROCESSED
PROCESSED
PROCESSED
PROCESSED
PROCESSED
// tutaj przerwa w printlowaniu
PROCESSED
PROCESSED
PROCESSED
PROCESSED
PROCESSED
Podsumowując, na kolejce timeouter'a odkładają się job'y: result.completeExceptionally(new TimeoutException())
Założmy że odłożyliśmy takich 50 na raz, teraz pierwszy się wykona po 2 sekundach (w tym przykładzie, bo taki ustawliśmy timeout), kolejny po 2 sekundach i troszkę, kolejny po 2 sekundach i troszkę + troszkę etc
Przy i < 1000
wygląda to tak:
Kopiuj
WARNING in: 2006 millis
WARNING in: 2024 millis
WARNING in: 2024 millis
WARNING in: 2024 millis
WARNING in: 2024 millis
WARNING in: 2024 millis
WARNING in: 2024 millis
WARNING in: 2024 millis
WARNING in: 2024 millis
WARNING in: 2024 millis
WARNING in: 2024 millis
WARNING in: 2024 millis
WARNING in: 2024 millis
WARNING in: 2024 millis
WARNING in: 2024 millis
WARNING in: 2024 millis
WARNING in: 2024 millis
WARNING in: 2025 millis
WARNING in: 2025 millis
WARNING in: 2025 millis
WARNING in: 2025 millis
WARNING in: 2025 millis
WARNING in: 2025 millis
WARNING in: 2025 millis
WARNING in: 2025 millis
WARNING in: 2025 millis
WARNING in: 2025 millis
WARNING in: 2025 millis
WARNING in: 2025 millis
WARNING in: 2025 millis
WARNING in: 2025 millis
WARNING in: 2025 millis
WARNING in: 2025 millis
WARNING in: 2025 millis
WARNING in: 2025 millis
WARNING in: 2025 millis
WARNING in: 2025 millis
WARNING in: 2025 millis
WARNING in: 2026 millis
WARNING in: 2026 millis
WARNING in: 2026 millis
WARNING in: 2026 millis
WARNING in: 2026 millis
WARNING in: 2026 millis
WARNING in: 2026 millis
WARNING in: 2026 millis
WARNING in: 2026 millis
WARNING in: 2026 millis
WARNING in: 2026 millis
WARNING in: 2026 millis
WARNING in: 2026 millis
WARNING in: 2026 millis
WARNING in: 2026 millis
WARNING in: 2026 millis
WARNING in: 2027 millis
WARNING in: 2027 millis
WARNING in: 2027 millis
WARNING in: 2027 millis
WARNING in: 2027 millis
WARNING in: 2027 millis
WARNING in: 2027 millis
WARNING in: 2027 millis
WARNING in: 2027 millis
WARNING in: 2027 millis
WARNING in: 2027 millis
WARNING in: 2027 millis
WARNING in: 2027 millis
WARNING in: 2027 millis
WARNING in: 2027 millis
WARNING in: 2027 millis
WARNING in: 2028 millis
WARNING in: 2028 millis
WARNING in: 2028 millis
WARNING in: 2028 millis
WARNING in: 2028 millis
WARNING in: 2028 millis
WARNING in: 2028 millis
WARNING in: 2028 millis
WARNING in: 2028 millis
WARNING in: 2028 millis
WARNING in: 2028 millis
WARNING in: 2028 millis
WARNING in: 2028 millis
WARNING in: 2028 millis
WARNING in: 2028 millis
WARNING in: 2028 millis
WARNING in: 2028 millis
WARNING in: 2028 millis
WARNING in: 2029 millis
WARNING in: 2029 millis
WARNING in: 2029 millis
WARNING in: 2029 millis
WARNING in: 2029 millis
WARNING in: 2029 millis
WARNING in: 2029 millis
WARNING in: 2029 millis
WARNING in: 2029 millis
WARNING in: 2029 millis
WARNING in: 2029 millis
WARNING in: 2029 millis
WARNING in: 2029 millis
WARNING in: 2029 millis
WARNING in: 2029 millis
WARNING in: 2029 millis
WARNING in: 2029 millis
WARNING in: 2029 millis
WARNING in: 2029 millis
WARNING in: 2029 millis
WARNING in: 2030 millis
WARNING in: 2030 millis
WARNING in: 2030 millis
WARNING in: 2030 millis
WARNING in: 2030 millis
WARNING in: 2030 millis
WARNING in: 2030 millis
WARNING in: 2030 millis
WARNING in: 2030 millis
WARNING in: 2030 millis
WARNING in: 2030 millis
WARNING in: 2030 millis
WARNING in: 2030 millis
WARNING in: 2030 millis
WARNING in: 2030 millis
WARNING in: 2030 millis
WARNING in: 2030 millis
WARNING in: 2030 millis
WARNING in: 2030 millis
WARNING in: 2030 millis
WARNING in: 2031 millis
WARNING in: 2031 millis
WARNING in: 2031 millis
WARNING in: 2031 millis
WARNING in: 2031 millis
WARNING in: 2031 millis
WARNING in: 2031 millis
WARNING in: 2031 millis
WARNING in: 2031 millis
WARNING in: 2031 millis
WARNING in: 2031 millis
WARNING in: 2031 millis
WARNING in: 2031 millis
WARNING in: 2031 millis
WARNING in: 2031 millis
WARNING in: 2031 millis
WARNING in: 2031 millis
WARNING in: 2031 millis
WARNING in: 2031 millis
WARNING in: 2031 millis
WARNING in: 2031 millis
WARNING in: 2032 millis
WARNING in: 2032 millis
WARNING in: 2032 millis
WARNING in: 2032 millis
WARNING in: 2032 millis
WARNING in: 2032 millis
WARNING in: 2032 millis
WARNING in: 2032 millis
WARNING in: 2032 millis
WARNING in: 2032 millis
WARNING in: 2032 millis
WARNING in: 2032 millis
WARNING in: 2032 millis
WARNING in: 2032 millis
WARNING in: 2032 millis
WARNING in: 2032 millis
WARNING in: 2032 millis
WARNING in: 2032 millis
WARNING in: 2032 millis
WARNING in: 2032 millis
WARNING in: 2032 millis
WARNING in: 2032 millis
WARNING in: 2032 millis
WARNING in: 2032 millis
WARNING in: 2032 millis
WARNING in: 2032 millis
WARNING in: 2032 millis
WARNING in: 2032 millis
WARNING in: 2032 millis
WARNING in: 2032 millis
WARNING in: 2032 millis
WARNING in: 2032 millis
WARNING in: 2033 millis
WARNING in: 2033 millis
WARNING in: 2033 millis
WARNING in: 2033 millis
WARNING in: 2033 millis
WARNING in: 2033 millis
WARNING in: 2033 millis
WARNING in: 2033 millis
WARNING in: 2033 millis
WARNING in: 2033 millis
WARNING in: 2033 millis
WARNING in: 2033 millis
WARNING in: 2033 millis
WARNING in: 2033 millis
WARNING in: 2033 millis
WARNING in: 2033 millis
WARNING in: 2033 millis
WARNING in: 2033 millis
WARNING in: 2033 millis
WARNING in: 2033 millis
WARNING in: 2033 millis
WARNING in: 2033 millis
WARNING in: 2033 millis
WARNING in: 2033 millis
WARNING in: 2033 millis
WARNING in: 2033 millis
WARNING in: 2034 millis
WARNING in: 2034 millis
WARNING in: 2034 millis
WARNING in: 2034 millis
WARNING in: 2034 millis
WARNING in: 2034 millis
WARNING in: 2034 millis
WARNING in: 2034 millis
WARNING in: 2034 millis
WARNING in: 2034 millis
WARNING in: 2034 millis
WARNING in: 2034 millis
WARNING in: 2034 millis
WARNING in: 2034 millis
WARNING in: 2034 millis
WARNING in: 2034 millis
WARNING in: 2034 millis
WARNING in: 2034 millis
WARNING in: 2034 millis
WARNING in: 2034 millis
WARNING in: 2034 millis
WARNING in: 2034 millis
WARNING in: 2034 millis
WARNING in: 2034 millis
WARNING in: 2034 millis
WARNING in: 2034 millis
WARNING in: 2034 millis
WARNING in: 2034 millis
WARNING in: 2035 millis
WARNING in: 2035 millis
WARNING in: 2035 millis
WARNING in: 2035 millis
WARNING in: 2035 millis
WARNING in: 2035 millis
WARNING in: 2035 millis
WARNING in: 2035 millis
WARNING in: 2035 millis
WARNING in: 2035 millis
WARNING in: 2035 millis
WARNING in: 2035 millis
WARNING in: 2035 millis
WARNING in: 2035 millis
WARNING in: 2035 millis
WARNING in: 2035 millis
WARNING in: 2035 millis
WARNING in: 2035 millis
WARNING in: 2035 millis
WARNING in: 2035 millis
WARNING in: 2035 millis
WARNING in: 2035 millis
WARNING in: 2035 millis
WARNING in: 2035 millis
WARNING in: 2035 millis
WARNING in: 2035 millis
WARNING in: 2035 millis
WARNING in: 2035 millis
WARNING in: 2035 millis
WARNING in: 2036 millis
WARNING in: 2036 millis
WARNING in: 2036 millis
WARNING in: 2036 millis
WARNING in: 2036 millis
WARNING in: 2036 millis
WARNING in: 2036 millis
WARNING in: 2036 millis
WARNING in: 2036 millis
WARNING in: 2036 millis
WARNING in: 2036 millis
WARNING in: 2036 millis
WARNING in: 2036 millis
WARNING in: 2036 millis
WARNING in: 2036 millis
WARNING in: 2036 millis
WARNING in: 2036 millis
WARNING in: 2036 millis
WARNING in: 2036 millis
WARNING in: 2036 millis
WARNING in: 2036 millis
WARNING in: 2036 millis
WARNING in: 2036 millis
WARNING in: 2036 millis
WARNING in: 2036 millis
WARNING in: 2036 millis
WARNING in: 2036 millis
WARNING in: 2036 millis
WARNING in: 2036 millis
WARNING in: 2036 millis
WARNING in: 2036 millis
WARNING in: 2036 millis
WARNING in: 2037 millis
WARNING in: 2037 millis
WARNING in: 2037 millis
WARNING in: 2037 millis
WARNING in: 2037 millis
WARNING in: 2037 millis
WARNING in: 2037 millis
WARNING in: 2037 millis
WARNING in: 2037 millis
WARNING in: 2037 millis
WARNING in: 2037 millis
WARNING in: 2037 millis
WARNING in: 2037 millis
WARNING in: 2037 millis
WARNING in: 2037 millis
WARNING in: 2037 millis
WARNING in: 2037 millis
WARNING in: 2037 millis
WARNING in: 2037 millis
WARNING in: 2037 millis
WARNING in: 2037 millis
WARNING in: 2037 millis
WARNING in: 2037 millis
WARNING in: 2037 millis
WARNING in: 2037 millis
WARNING in: 2037 millis
WARNING in: 2037 millis
WARNING in: 2037 millis
WARNING in: 2037 millis
WARNING in: 2037 millis
WARNING in: 2037 millis
WARNING in: 2037 millis
WARNING in: 2037 millis
WARNING in: 2037 millis
WARNING in: 2037 millis
WARNING in: 2037 millis
WARNING in: 2037 millis
WARNING in: 2037 millis
WARNING in: 2037 millis
WARNING in: 2037 millis
WARNING in: 2037 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2038 millis
WARNING in: 2039 millis
WARNING in: 2039 millis
WARNING in: 2039 millis
WARNING in: 2039 millis
WARNING in: 2039 millis
WARNING in: 2039 millis
WARNING in: 2039 millis
WARNING in: 2039 millis
WARNING in: 2039 millis
WARNING in: 2039 millis
WARNING in: 2039 millis
WARNING in: 2039 millis
WARNING in: 2039 millis
WARNING in: 2039 millis
WARNING in: 2039 millis
WARNING in: 2039 millis
WARNING in: 2039 millis
WARNING in: 2039 millis
WARNING in: 2039 millis
WARNING in: 2039 millis
WARNING in: 2039 millis
WARNING in: 2039 millis
WARNING in: 2039 millis
WARNING in: 2039 millis
WARNING in: 2039 millis
WARNING in: 2039 millis
WARNING in: 2039 millis
WARNING in: 2039 millis
WARNING in: 2039 millis
WARNING in: 2039 millis
WARNING in: 2039 millis
WARNING in: 2039 millis
WARNING in: 2039 millis
WARNING in: 2040 millis
WARNING in: 2040 millis
WARNING in: 2040 millis
WARNING in: 2040 millis
WARNING in: 2040 millis
WARNING in: 2040 millis
WARNING in: 2040 millis
WARNING in: 2040 millis
WARNING in: 2040 millis
WARNING in: 2040 millis
WARNING in: 2040 millis
WARNING in: 2040 millis
WARNING in: 2040 millis
WARNING in: 2040 millis
WARNING in: 2040 millis
WARNING in: 2040 millis
WARNING in: 2040 millis
WARNING in: 2040 millis
WARNING in: 2040 millis
WARNING in: 2040 millis
WARNING in: 2040 millis
WARNING in: 2040 millis
WARNING in: 2040 millis
WARNING in: 2040 millis
WARNING in: 2040 millis
WARNING in: 2040 millis
WARNING in: 2040 millis
WARNING in: 2040 millis
WARNING in: 2040 millis
WARNING in: 2040 millis
WARNING in: 2040 millis
WARNING in: 2040 millis
WARNING in: 2040 millis
WARNING in: 2040 millis
WARNING in: 2040 millis
WARNING in: 2040 millis
WARNING in: 2040 millis
WARNING in: 2040 millis
WARNING in: 2040 millis
WARNING in: 2040 millis
WARNING in: 2041 millis
WARNING in: 2041 millis
WARNING in: 2041 millis
WARNING in: 2041 millis
WARNING in: 2041 millis
WARNING in: 2041 millis
WARNING in: 2041 millis
WARNING in: 2041 millis
WARNING in: 2041 millis
WARNING in: 2041 millis
WARNING in: 2041 millis
WARNING in: 2041 millis
WARNING in: 2041 millis
WARNING in: 2041 millis
WARNING in: 2041 millis
WARNING in: 2041 millis
WARNING in: 2041 millis
WARNING in: 2041 millis
WARNING in: 2041 millis
WARNING in: 2041 millis
WARNING in: 2041 millis
WARNING in: 2041 millis
WARNING in: 2041 millis
WARNING in: 2041 millis
WARNING in: 2041 millis
WARNING in: 2041 millis
WARNING in: 2041 millis
WARNING in: 2041 millis
WARNING in: 2041 millis
WARNING in: 2041 millis
WARNING in: 2041 millis
WARNING in: 2041 millis
WARNING in: 2041 millis
WARNING in: 2041 millis
WARNING in: 2041 millis
WARNING in: 2041 millis
WARNING in: 2041 millis
WARNING in: 2041 millis
WARNING in: 2041 millis
WARNING in: 2041 millis
WARNING in: 2041 millis
WARNING in: 2042 millis
WARNING in: 2042 millis
WARNING in: 2042 millis
WARNING in: 2042 millis
WARNING in: 2042 millis
WARNING in: 2042 millis
WARNING in: 2042 millis
WARNING in: 2042 millis
WARNING in: 2042 millis
WARNING in: 2042 millis
WARNING in: 2042 millis
WARNING in: 2042 millis
WARNING in: 2042 millis
WARNING in: 2042 millis
WARNING in: 2042 millis
WARNING in: 2042 millis
WARNING in: 2042 millis
WARNING in: 2042 millis
WARNING in: 2042 millis
WARNING in: 2042 millis
WARNING in: 2042 millis
WARNING in: 2042 millis
WARNING in: 2042 millis
WARNING in: 2042 millis
WARNING in: 2042 millis
WARNING in: 2042 millis
WARNING in: 2042 millis
WARNING in: 2042 millis
WARNING in: 2042 millis
WARNING in: 2042 millis
WARNING in: 2042 millis
WARNING in: 2042 millis
WARNING in: 2042 millis
WARNING in: 2042 millis
WARNING in: 2042 millis
WARNING in: 2042 millis
WARNING in: 2042 millis
WARNING in: 2042 millis
WARNING in: 2042 millis
WARNING in: 2042 millis
WARNING in: 2042 millis
WARNING in: 2042 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2043 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2044 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2045 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2046 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2047 millis
WARNING in: 2048 millis
WARNING in: 2048 millis
WARNING in: 2048 millis
WARNING in: 2048 millis
WARNING in: 2048 millis
WARNING in: 2048 millis
WARNING in: 2048 millis
WARNING in: 2048 millis
WARNING in: 2048 millis
WARNING in: 2048 millis
WARNING in: 2048 millis
WARNING in: 2048 millis
WARNING in: 2048 millis
WARNING in: 2048 millis
WARNING in: 2048 millis
WARNING in: 2048 millis
WARNING in: 2048 millis
WARNING in: 2048 millis
WARNING in: 2048 millis
WARNING in: 2048 millis
WARNING in: 2048 millis
WARNING in: 2048 millis
WARNING in: 2048 millis
WARNING in: 2048 millis
WARNING in: 2048 millis
WARNING in: 2048 millis
WARNING in: 2048 millis
WARNING in: 2048 millis
WARNING in: 2048 millis
WARNING in: 2048 millis
WARNING in: 2048 millis