1

異なるサーバー上の 4 つのデータベースに保存されている 184 台の車の GPS 情報を同期する J2SE アプリを開発しています。車ごとにスレッドを作成し、ScheduledThreadPool に保存します

    ScheduledExecutorService executor = Executors.newScheduledThreadPool(20);

    for (int i = 0; i < cars.size(); i++) {
        Car vec_temp = cars.get(i);
        SyncThread carThread = new SyncThread(q, vec_temp, reintentos);
        long sleep = carThread.calculateVehicleDelay();
        executor.scheduleAtFixedRate(hilo, 0, sleep, MILLISECONDS);
    }

緯度と経度の情報は XML データで SocketServer によって取得されるため、SyncThread クラス内で Socket をインスタンス化し、情報を要求してその接続を閉じ、これを 15 分ごとに行います...

アプリは何らかの理由でうまく機能し始め、ある時点で例外なしで実行を停止します...

jar は Windows サービスとして実行されています。

4

2 に答える 2

1

Runnable 実装に try-catch ブロックを配置してみてください。アイデアは、例外がエグゼキューターにスローされるのを抑制することです。理想的には、このインシデントを catch ブロックに記録し、それを捨てないようにすることができれば、アプリケーションは期待どおりに動作し、その後何が起こったのかを特定できるようになります。

于 2011-05-28T06:50:06.003 に答える