TimerTask应用程序设计问题

时间:2014-11-29 11:27:07

标签: java software-design timertask

我正在研究java TimerTask Scheduler Application。我有一个主类作为服务,它作为调度程序运行。

我有TaskSchedule() extends TimerTask类用于固定时间执行:

timer.scheduleAtFixedRate(new TaskSchedule(), ...)

TaskSchedule的内部构造函数我有一个dataHelper类,它与数据库交互以从数据库中获取和更新值。 在TaskSchedule类中,我重写了TimerTask的run方法。 在run方法中,我使用参数调用数据库助手调用:

@Override
public void run(){
    dataHelper.fetchDataFromDB( ? )
}

这里是我提出的问题,我被困在设计中。我想将此参数保持为数据库动态。

一个解决方案我虽然是:
将数据库参数从服务传递到TaskScheduler到dataHelper。但我在设计层面寻找更好的解决方案。

1 个答案:

答案 0 :(得分:0)

您可以使用共享变量,您可以在外部设置,也可以在“fetchDataFromDB”之前使用。你必须要关心同步。使用互斥锁来保护共享内存。 另一种解决方案是,你可以像侦听器一样使用somethink,每次你想从db中获取时,侦听器现在就会从中获取数据。