次のコードがあります。
public void run()
{
try
{
logger.info("Looking for new tasks to fetch... ");
// definitions ..
for(Task t: tasks)
{
logger.info(" Task " + t.getId() + " is being fetched ");
// processing ... fetching task info from db using some methods
}
Thread.sleep(FREQUENCY);
//t.start();
} catch (Exception e)
{
logger.info("FetcherThread interrupted: "+e.getMessage());
}
}
特定の時間「FREQUENCY」の間スレッドをスリープさせてから、再び動作させようとしています。このコードをEclipseで実行すると、スレッドは1回だけ動作し、その後何も起こらず、プロセスが終了します。ステートメントからコメントを削除すると: t.start()
、「FetcherThread interrupted: null」が表示されます。誰が私が間違っているのか教えてもらえますか?
注意: スレッドを常に動作させたいのですが、定期的にフェッチします (5 分ごとなど)。