我们的产品建立在Java堆栈上,它基本上是一个事务系统。我只是很想知道我们是否有任何机制,以便在程序进入无限循环时可以发送通知?或者可能是我们可以杀死java进程本身?还是更好的东西?
答案 0 :(得分:0)
如果您正在使用JTA事务,则可以在应用程序服务器上为这些设置超时。如果事务花费很多时间(例如由于无限循环,而且事务处理时间太长,则会抛出异常。设置阈值越高,捕获任何非阈值的风险越低)一个infinte循环。)然后我想你可以使用面向方面编程(AOP)来包装这个异常并创建一个通知。
答案 1 :(得分:0)
一般来说,这是无法解决的问题,请参阅Halting problem。当然,您可以设置一些超时或设置一些“命令计数器”,但是,地平线有一个新问题(如果程序在timeout + 1
秒后停止怎么办?)