怎么判断一个对象是否在一定时间内一直在一个队列中而没有被取走过
如何判断一个对象是否在一定时间内一直在一个队列中而没有被取走过?
因为做了一个连接池,池子中有一定数量的长连接和一定数量的短链接,当高并发发生的时候,那些短链接可能会暂时激活成长连接,但是什么时候关闭这些连接让他们回到短链接状态呢?我的想法是检测这个链接是否一直在连接池中而没有被取走,如果规定时间没有取走,则关闭它,那么问题来了,问题如标题。
------解决思路----------------------
听不懂,既然是连接池,那就应该都是长连接了。我对短连接的理解就是用一次连接一次,那还谈什么连接池呢?也许我没有理解你的意思,你说的也确实有点难懂。
------解决思路----------------------
都是自己保存的东西,再另外记住啥时候有人来拿过不就行了,并没有人说我们只能用一个 map 来保存数据啊,也没有人说“拿走连接不让你知道啊“。
------解决思路----------------------
为每个连接都存储使用次数和最后使用时间不就行了么。
每次清理的时候历遍没有正在使用的,然后根据最后使用时间是否超时而改变连接状态.
------解决思路----------------------
你需要在开一个线程定时扫描这些连接,用上面兄弟说的最后使用时间进行判断就可以了,扫描间隔根据你的应用设置就可以
因为做了一个连接池,池子中有一定数量的长连接和一定数量的短链接,当高并发发生的时候,那些短链接可能会暂时激活成长连接,但是什么时候关闭这些连接让他们回到短链接状态呢?我的想法是检测这个链接是否一直在连接池中而没有被取走,如果规定时间没有取走,则关闭它,那么问题来了,问题如标题。
------解决思路----------------------
听不懂,既然是连接池,那就应该都是长连接了。我对短连接的理解就是用一次连接一次,那还谈什么连接池呢?也许我没有理解你的意思,你说的也确实有点难懂。
------解决思路----------------------
都是自己保存的东西,再另外记住啥时候有人来拿过不就行了,并没有人说我们只能用一个 map 来保存数据啊,也没有人说“拿走连接不让你知道啊“。
------解决思路----------------------
为每个连接都存储使用次数和最后使用时间不就行了么。
每次清理的时候历遍没有正在使用的,然后根据最后使用时间是否超时而改变连接状态.
------解决思路----------------------
你需要在开一个线程定时扫描这些连接,用上面兄弟说的最后使用时间进行判断就可以了,扫描间隔根据你的应用设置就可以