如何用消息队列推送数据,望大家指点,谢谢!
流程:定时(1分钟时间间隔)从数据库拿数据,处理拿到的数据后放到MQ中,然后再从MQ中获取之后,通过Webservice推送(推送后停留2秒)到另一台服务器
用消息队列如何实现多线程安全,保证数据完整性?
望大家详细点,谢谢!
------解决方案--------------------关注此问题!
------解决方案--------------------高级问题。 关注、、
------解决方案--------------------你是想问消息中间件吧?
这种东西有硬件可以实现的,东方通
------解决方案--------------------用事务性消息队列,在发送和读取消息的时候直接用TRANSACTIONSCOPE套起来。如果在调用WEBSERVICE时采用如下方式解决事物完整性问题
using(TransactionScope ts=...)
{
var msg=Mq.GetMessage();
using(Webservice service=...)
{
service.ConsumeMsg(msg);
}
ts.Complete();
}
------解决方案--------------------首先,楼主,没有绝对的安全,把内存中的业务数据持久化成消息已经做了一步安全,多线程可以启用,但是当计算机突然断电时候,还是有可能导致数据没有存储但队列已经删除,我曾发过这样的帖子,有说可以设置变量的,自己控制,但是仍然有缺陷,所以不能100%保证,因此,最好是不断电。
------解决方案--------------------有事务的支持,断电与否是不会影响数据的,建议楼上看点事务的实现的资料。
------解决方案--------------------
可以看成一个读写锁的模式
不过简单一点来说,读写同步在一个线程中就搞定了
异步的话,在内部维持MQ ID的一致性
------解决方案--------------------WindowsService + WebService 前者运行比较稳定,适时调用后者
------解决方案--------------------可以考虑WCF MTOM传输
------解决方案--------------------又是消息队列。。