2015-06-28 64 views
-2

我有两个产品,称为A和B.两个产品共享一些设置可以说X.产品A是一个常规的Windows服务,运行常规的C#定时器,每X秒执行一些操作。在产品B中,用户有能力改变这个参数X.我怎样才能让产品A知道B中所做设置的变化?产品A和B的唯一共同点是Microsoft SQL Server数据库(其中设置也将从B写入)。产品设置同步

我需要一些方法/体系结构,当数据库中有更改的设置时,B可以通知A,还有很多像X这样的设置,所以应该是一个通用的解决方案。

谢谢!

+0

目前尚不清楚你想要做什么。你说产品A运行一个计时器并执行一个动作。您是否正在使用SQL Server的作业队列每隔X秒触发一次该操作。什么是行动? –

+0

对不起,这两种产品都由Windows服务组成,并且A执行的动作产品是从硬件设备读取一些数据,但是这个动作与同步无关,谢谢您的注意。 – erik

+0

如果这些服务位于同一台机器上,为什么没有文件“被触摸”......如果不是,为什么不能有一个名为'updated_at'的SQL字段,以便每次操作A时检查设置的有效性被执行? – Myst

回答

0

您正在寻找消息队列。我相信有一个入侵到SQL Server(这是一段时间)。您的批处理作业只需在每次运行新的配置值时检查队列。

+0

这意味着每次执行我的操作时,都需要轮询此队列以获取新设置。这不仅仅是轮询设置表并对updated_at列进行排序有什么不同?我希望事件驱动,因为我的行动经常执行,有时甚至在2-3秒的间隔。 – erik

+0

从根本上说,它没有什么不同,队列只是高度优化的表格,用于将记录从头部拉出,并且只传递一次。你可以通过创建一个具有某种“接收”标志的表格来建立自己的表格,这个表格可以在从桌子上拉下表格后设置。 –