Java TimerTask应用程序设计问题
我正在开发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方法中,
TaskSchedule()扩展了TimerTask
类,用于固定时间执行,如下所示:
timer.scheduleAtFixedRate(new TaskSchedule(), ...)
在TaskSchedule
的构造函数中,我有一个dataHelper
类,它与数据库交互,从数据库中获取和更新值。
在TaskSchedule
类中,我正在重写TimerTask的run
方法。
在run方法中,我调用数据库助手调用,参数如下:
@Override
public void run(){
dataHelper.fetchDataFromDB( ? )
}
在这里,我提出了一个问题,我被困在设计的什么地方。我希望将此参数保持为数据库动态
我想到的一个解决方案是:将数据库参数从服务传递到TaskScheduler再传递到dataHelper。但我在设计层面上也在寻找更好的解决方案。您可以使用一个共享变量,您可以在外部设置,也可以在“fetchDataFromDB”之前使用。你必须注意同步。使用互斥锁保护共享内存。 另一个解决方案是,您可以使用类似侦听器的somethink,每次您想要从db获取数据时,侦听器都会立即从您那里获取数据