我创建了一个doWork()预定每天凌晨1点运行的功能,功能如下:
@Schedule(hour = "1", persistent = false)
public void doWork()
{
System.out.println("Starting .....\nTIME: " + System.currentTimeMillis());
System.out.println("this : " + this);
//Some code here, if-conditions and try/catch blocks. No loops
System.out.println("Exiting .....\nTIME: " + System.currentTimeMillis());
System.out.println("this : " + this);
}
Run Code Online (Sandbox Code Playgroud)
问题是这个函数不止一次运行,而不是按计划运行.
一旦我创建它,它就完全按预期运行(每天凌晨1:00:00).几天后,它开始在1:03:00运行(这没有任何意义,因为它是非持久性的,并且服务器中没有任何停机时间).之后,该功能开始运行不止一次,间隔间隔很短(秒差)
有谁知道可能导致这种情况的原因,或者告诉我我能做些什么来解决它?
[编辑]:环境细节
Application Server:WebSphere Application Server 8.5.5
IDE:Rational Application Developer 9.1
数据库管理系统:IBM DB2 10.1
我已将WebSphere Application Server v8.5中的日志记录级别从* = info更改为* = all,并从eclipse重新启动了服务器。服务器出现故障,但没有再次启动,我尝试了几次重启计算机,并尝试从cmd启动/停止服务器,但是没有任何效果。
我怀疑这可能是由于过多的日志记录(由于我将级别更改为全部,所以可能服务器上的负载过多而无法启动?)
我的问题是,是否可以通过任何配置或类似方法更改回日志记录级别?由于服务器未启动,因此我无法从管理控制台将其更改回。任何建议将不胜感激。
[编辑]我检查了日志,发现WebSphere正在记录大量的跟踪日志,这就是服务器启动时间太长的原因。