1

さまざまなセンサーをリッスンするアプリケーションを作成しています。録音セッションでそれらをリッスンし、各セッションには、さまざまな期間 (オフセット付き) でさまざまなラインをリッスンすることが含まれます。記録セッションが終了すると、データ全体がRecordingSessionオブジェクトにパックされ、サーバーに送信されます。

記録セッションの間には常に間隔があります。

####### RecordingSession 1 ########                  ####### RecordingSession 2 ########
#|********* Line 1 **************|#                  #|********* Line 1 **************|#
#        |********* Line 2 ******|#  ** interval **  #         |******** Line 2 ******|#   ...
#                |**** Line 3 ***|#                  #                |**** Line 3 ***|#
###################################                  ###################################

私はJavaを使用して、オフセットを使用してさまざまな期間をTimerスケジュールできることを知っています。TimerTasksの 3 つの TimerTasks と、Linesを保存しRecordingSessionて新しいものを作成するための 1 つ。

ここでの問題は、記録セッション間の間隔を 0 に設定できるようにすることです (以下のリストのように)。Timer正しい時間を設定しても、各時間指定タスクの完全な時間指定実行が保証されないことを期待しています。それぞれLineに、回線のデータ ストリームに登録および登録解除するリスナーがあります (それぞれに TimerTask があります)。で実装するとTimerTasks、登録を解除する前にリスナーを登録すると、登録解除により、次の RecordingSession にデータが記録されなくなる可能性があります。

####### RecordingSession 1 ############### RecordingSession 2 ########
#|********* Line 1 **************|##|********* Line 1 **************|#
#         |******** Line 2 ******|##         |******** Line 2 ******|#   ...
#                |**** Line 3 ***|##                |**** Line 3 ***|#
######################################################################

(ネストされた) TimerTasks と Threads を使用するよりも、この問題を解決するためのより良い方法はありますか?

4

1 に答える 1