java - 我可以在我的 java 程序中运行一个无限循环来检查第三方是否在数据库中做了一些更改
问题描述
我正在用java设计一个程序并使用mysql作为数据库。该程序允许多个用户连接到数据库。
该程序的一个重要部分是立即更新用户,另一个人在特定表中进行了更改,这将使用户执行操作,因此更改将显示在他的最后。
我想在一个套接字上监听,但我无法解决多个用户的概念以及发送者将如何通知特定用户而不是整个组
这类似于短信
所以我要做的是运行一个每 10 秒运行一次的 while 循环,以稍微提高性能,并根据我用来登录的用户名检查表,这将得到我想要的,但我知道它是效率不高
有任何想法吗 ???
解决方案
在数据库表中使用“版本控制”模式。添加每次更新表时递增的数字列,例如:
alter table users add version_number bigint:
然后,每次更新行时,您也应该增加此值:
update users
set my_value = ...,
version_number = version_number + 1 -- include this change
where id = 1234
这样,每个客户端都会记住他们看到的最后一个 version_number 。如果他们发现了不同的版本号,则发生了变化,因此应该采取行动。
推荐阅读
- excel - Excel 公式,用于根据将手动输入的日期创建日期范围
- c# - 在 ASP.NET MVC 和 MySQL 中通过 ODBC 绑定下拉列表
- powershell - 以提升的权限执行 ScheduledJob
- ios - Sinch 在后台接听电话
- microsoft-graph-api - 访问 Microsoft.Graph.User 用户主体名称属性 - Graph API
- java - 使用 Java 使用 MicrosoftTranslator v3 将 HTML 字符串从英语翻译成德语
- html - 四个项目的 Flex 容器对齐
- google-apps-script - Google Apps 脚本在“服务超时:电子表格”上失败
- webdav - 是否可以将自定义属性放在沙丁鱼的目录中?
- c++ - C++ Eigen 线性系统求解,数值问题?