给一个公司开发的短信平台,对方希望能和他们的一个业务系统对接起来,根据他们工作的流程,在各个阶段短信提醒相关的人员。公司短信平台的做法是将要发送的短信保存在一张MessageList表中,程序每一秒钟查询一下该表,如果有数据,则发送短信,然后更改该数据的状态。对方的初步想法是,他们在业务系统中添加一张表,每个流程结束后会向该表中添加一条数据,我们通过软件不停获取表中的信息,然后整合后插入到MessageList表中。
我现在要问的是,不停获取数据并整理后插入到本地数据库中,应该使用怎样的解决方案?我现在能想到的就是写一个winform的程序,放一个时钟,每个一段时间去读一次客户系统中提供的那张表。
一直做web,还请各位指点,谢谢。
用触发器不可以吗,有记录插入,通知WINFORM
Timer 也可以,太耗资源。
其实楼主所描述的,是一个典型的观察者模式应用的范例。观察者模式有两种实现方式,推和拉。楼主的方案实际上是拉数据,而实际上推数据的方式应用得更广。
比如,开发一个Web Service,由客户的系统调用,有了新的数据后,直接调用Web Service向楼主公司的系统中发送数据,楼主的系统中对数据进行处理整合,再插入到MessageList表中。这样,客户公司不用修改数据库,代码的修改程度也能减少到最小,而且楼主公司的代码修改也不大,甚至比现在的方案还要少。
当然,这只是一个小小的建议。如果一定要使用拉数据的方式,也只好设置Timer不停的访问对方的表了。
其实,做系统整合,不一定非要对方提供接口,整合方也可以主动的提供接口,因为对方已经认可修改代码,你提供接口让对方使用,也不失为一个好的办法。