替代计划的任务,将来可能会被取消

时间:2014-06-16 08:06:26

标签: java optimization architecture scheduled-tasks java-6

在我们的服务器中,我们提供了一项功能,可以在特定时间向另一台服务器发送请求。

方案如下:

  • Server1向我们的服务器发送Session1请求

  • 请求包含我们必须向具有相同会话ID的Server1发送请求的时间

我们通过在特定时间安排请求来实现这一目标。

Ex。

在上午10:00从Server1收到Session1请求,时间是晚上11:00,所以我们在晚上11:00安排了该请求。

唯一的问题是会话可能会在时间之前终止,我们必须取消该会话的计划任务。

会话在给定时间之前到期的比率 10:8 ,即10分中的8分将在时间之前终止。

Java ScheduleThreadPool只会在调用任务取消但不删除任务时将任务标记为取消。

我无法调用Queue.purge()方法删除已取消的任务,因为取消的任务数可能在lac ex中。 2 lac

其他解决方案是,

我可以管理<Session-ID, Time>的地图,并且每小时我将检查会话ID的数量,该会话ID将在下一个小时进行身份验证并仅安排该会话ID。 它会减少一些开销,因为如果它会在时间之前终止,我将从map中删除session-ID。

请优先考虑这些或现有的任何变化,以优化上述解决方案

1 个答案:

答案 0 :(得分:0)