gpt4 book ai didi

windows - 如何 : Inform application that database table row is updated?

转载 作者:行者123 更新时间:2023-11-29 13:35:18 25 4
gpt4 key购买 nike

我正在开发基于 MFC 的基于 Windows 的应用程序,使用将执行的 PostgreSQL

  1. 从 UI 获取信息
  2. 执行一些逻辑并将相关信息存储到数据库
  3. 必须立即或按预定时间间隔(例如,xyz 日期的 5:00)通过网络发送存储的信息

目前,我们已经开发了一种分发机制(线程),它不断地轮询数据库以获取插入数据库的新信息。线程获取信息并发送到网络模块。

但是,我觉得这不是正确的做法,因为

  1. 每次轮询都是一项开销。有时可能没有什么可执行的
  2. 这不是实时的,因为我们每 5 秒轮询一次

所以

  1. 有没有办法在数据库中的信息更新后立即向我的网络模块发送触发器?

  2. 或者有什么更好的方法来完成这个任务?

提前致谢。

最佳答案

为此,您可以使用 PostgreSQL 的监听/通知功能。

对消息感兴趣的客户端将执行listen 语句,然后触发器将通知 他们。

我不使用 C#,但是根据 the manual您可以以异步方式检索消息——这仍然涉及一些“轻量级”轮询,因为通知消息仅作为服务器应答的一部分发送。手册声称运行“空”语句(例如 ;)就足够了。使用 Java/JDBC 我使用了一个简单的 select 42,它不会给服务器带来很大的工作量,因为没有触及任何表。

与实际检索表的数据相比,此轮询绝对更快且可扩展性更强。

关于windows - 如何 : Inform application that database table row is updated?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14154153/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com