当前位置:编程学习 > C#/ASP.NET >>

关于任务队列

各位大虾,请教一个问题。
我们的系统会向第三方系统发送报文,但是第三方系统并不是可以完全可以接受我们的消息并返回,(例如网络超时,第三方系统超负荷,处理不了非常大的数据量等情况)。现在需要实现这样一个功能,我们的系统设定发往第三方系统消息的最大session数,如果超过了这个限制则等待,直到第三方系统给我们的系统返回处理情况,再继续发送。
请教各位大侠有什么好的解决方案实现此功能,小弟在这里先谢谢各位了! --------------------编程问答-------------------- 占个座位。很像TCP的滑动窗口。不过LZ这里是Sessions而不是WindowSize。 --------------------编程问答-------------------- 可以考慮用mq,把同步的事情,轉換成異步的處理,而且,MQ還可以緩存請求 --------------------编程问答-------------------- 具體的說,就是,和第三方的交互,都通過一個類似代理服務器來完成,所有的控制,都在代理服務器里里進行,而你們的消息不再直接提交給第三方系統,而是提交給代理服務器
你們的系統和代理服務器之間的通訊可以考慮用MQ --------------------编程问答-------------------- 学习了 --------------------编程问答-------------------- 谢谢nicochang的建议。
我们的系统和第三方系统的交互是使用中间件Tuxedo来实现的,但是我们不能无限制的向第三方系统发送消息,如果超过一定的数目,则必须排队,直到有了空余的session。
经过和同事的讨论和我们头的指导,我实现了一个TuxedoPool,使用池来实现。具体的方案是这样的,在发送消息之前,我会从Pool中取出一个连接,如果连接已经用完,则等待其它连接的释放;发送消息且取得返回值之后,则释放这个链接,同时通知等待的线程可以获取连接了。
--------------------编程问答-------------------- 不知,帮顶 --------------------编程问答-------------------- 不知,帮顶
补充:.NET技术 ,  .NET Framework
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,