我正在对多米诺骨牌java代理进行压力测试,该代理可能在很多数据库中修改了很多文档。我正在使用庞大的数据库对代理进行负载测试,并且代理管理器正在关闭我的代理,因为它们的持续时间超过了服务器文档“Max LotusScript / Java执行时间:”中的指定输入。
我知道我可以编写一个程序文档,让代理程序在没有任何时间运行但不想这样做,因为你丢失了代理程序的句柄。
我知道我需要对代理进行编程,以便我可以将“任务”文档(其中包含代理的所有指令)保存在“未完成”状态,以便我可以从停止的位置开始。 / p>
编写LotusScript代理,有可能在代理的'Terminate'事件中编写清理代码,我的java代理缺少此选项。
目前,我最好的想法是在我的配置中设置一个“超时”字段,该字段将由小于服务器截止时间的值填充。然而,这意味着我会定期询问“我还有时间开始下一步行动吗?”的问题。我认为这会破坏性能。
您对此案例的最佳做法有什么经验?
答案 0 :(得分:0)
除了DOTS和Java Application方法之外,还有另外两种选择。
选项1:您可以在此处使用程序文档,并且仍然可以与代理进行交互。
在代码中添加检查以检查磁盘上的文件或文档字段。如果文件在那里或字段设置,则告诉您的应用程序开始清理。
检查文档然后检查磁盘上的文件会有更多的开销。
选项2:您可以使用java.util.Timer
对象。
将此设置为ServerMaximumTimeout - X minute/s
执行。在计时器代码中抛出一个TimeoutException。让您的主要代码捕获此异常并进行清理。
然后在你的finally块中清理定时器对象,如果它尚未死亡。
another question中有关详细信息。