Java TimerTask应用程序设计问题

Java TimerTask应用程序设计问题,java,software-design,timertask,Java,Software Design,Timertask,我正在开发java TimerTask调度程序应用程序。我有一个主类作为服务,它作为调度器运行 我有一个TaskSchedule()扩展了TimerTask类,用于固定时间执行,如下所示: timer.scheduleAtFixedRate(new TaskSchedule(), ...) 在TaskSchedule的构造函数中,我有一个dataHelper类,它与数据库交互,从数据库中获取和更新值。 在TaskSchedule类中,我正在重写TimerTask的run方法。 在run方法中,

我正在开发java TimerTask调度程序应用程序。我有一个主类作为服务,它作为调度器运行

我有一个
TaskSchedule()扩展了TimerTask
类,用于固定时间执行,如下所示:

timer.scheduleAtFixedRate(new TaskSchedule(), ...)
TaskSchedule
的构造函数中,我有一个
dataHelper
类,它与数据库交互,从数据库中获取和更新值。 在
TaskSchedule
类中,我正在重写TimerTask的
run
方法。 在run方法中,我调用数据库助手调用,参数如下:

@Override
public void run(){
    dataHelper.fetchDataFromDB( ? )
}
在这里,我提出了一个问题,我被困在设计的什么地方。我希望将此参数保持为数据库动态

我想到的一个解决方案是:

将数据库参数从服务传递到TaskScheduler再传递到dataHelper。但我在设计层面上也在寻找更好的解决方案。

您可以使用一个共享变量,您可以在外部设置,也可以在“fetchDataFromDB”之前使用。你必须注意同步。使用互斥锁保护共享内存。 另一个解决方案是,您可以使用类似侦听器的somethink,每次您想要从db获取数据时,侦听器都会立即从您那里获取数据