【发布时间】:2025-12-21 11:30:10
【问题描述】:
我有两个产品,称为 A 和 B。这两个产品共享一些设置,比如说 X。产品 A 是一个常规的 Windows 服务,它运行一个常规的 C# 计时器,每 X 秒执行一些操作。在产品B中,用户可以更改此参数X。如何让产品A知道B中设置的更改?产品 A 和 B 的唯一共同点是 Microsoft SQL Server 数据库(设置也将从 B 写入其中)。
我需要一些方法/架构,当数据库中的设置发生更改时,B 可以通知 A,还有很多像 X 这样的设置,所以应该是一个通用的解决方案。
谢谢!
【问题讨论】:
-
不清楚您要做什么。你说产品 A 运行一个计时器并执行了一个动作。您是否使用 SQL Server 的作业队列每 X 秒触发一次操作。什么动作?
-
抱歉,两个产品都包含windows服务,产品A执行的动作是从硬件设备读取一些数据,但是这个动作与同步无关,谢谢你的注意。
-
如果服务在同一台机器上,为什么不'touched'文件......如果没有,为什么不有一个名为
updated_at的SQL字段,以便设置每次执行操作 A 时都会检查有效性? -
谢谢 Myst。但是,虽然您建议使用 updated_at 字段的方法可行,但它不是我更喜欢的解决方案,因为它会导致大量不必要的数据库请求,操作 A 通常每 5 秒执行一次,并且值/设置经常更改一次一周或类似的时间。
标签: sql sql-server architecture websocket