在我们的服务器中,我们提供了一项功能,可以在特定时间向另一台服务器发送请求。
方案如下:
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。
请优先考虑这些或现有的任何变化,以优化上述解决方案
答案 0 :(得分:0)