数据库有新的记录,我就需要调某接口推送消息,这个该怎么做?

2020-05-20 15:12:38 +08:00
 sandman511

每分钟检索一次数据库吗

2440 次点击
所在节点    程序员
19 条回复
zhangyp123
2020-05-20 15:22:26 +08:00
canal
dorothyREN
2020-05-20 15:26:01 +08:00
我只知道 mssql 可以用触发器直接发送 http 请求
tomato1111
2020-05-20 15:26:58 +08:00
触发器
asAnotherJack
2020-05-20 15:33:46 +08:00
触发器,或者从 binlog 入手可不可以啊
tomczhen
2020-05-20 15:41:15 +08:00
Oracle 和 SQL Server 可以利用内置 的 Message Queue 功能来做,之前有做过 https://github.com/TomCzHen/jiandaoyun_push_tool 一个(顺便求个星)。可以配合修改业务存储过程,触发器来配合实现。

如果不想做侵入式的修改,考虑基于 CDC 来做,Oracle 和 SQL Server 直接就有自带方案,Mysql 这边是基于 binlog 做的方案,可以搜一下,开源、商业方案都有,根据自己需要选择就好。
narmgalaxy
2020-05-20 15:44:38 +08:00
我觉得这可能是 x-y 问题,或许你把你的业务对象,过程完整说出来,你会得到更好的回答。
zpfhbyx
2020-05-20 15:45:00 +08:00
这个不应该是在写入的逻辑添加事件触发么..
37Y37
2020-05-20 15:52:14 +08:00
signals 能完美解决,看看你所用的语言有没有,这里有一个 django signals 介绍和使用
https://blog.ops-coffee.cn/s/cmxdafstno56ixurmd4kxa
sandman511
2020-05-20 15:52:44 +08:00
@zhangyp123
@dorothyREN
@tomato1111
@asAnotherJack
@tomczhen
@narmgalaxy
@zpfhbyx
标题说的不准确 sorry APPEND 了
lsorrow
2020-05-20 16:19:30 +08:00
java 可以看看 quartz,用 Spring 的话直接使用 Schedule 的 Cron
项目启动的时候遍历一次现有数据设置任务,后续有数据插入再追加任务
zoharSoul
2020-05-20 16:22:33 +08:00
订阅 bingo
rioshikelong121
2020-05-20 16:23:46 +08:00
你这个需求应该叫定时任务 job schduler

.net 下我用过 Quartz
saulshao
2020-05-20 16:39:20 +08:00
我没明白为啥要这么做?那个往数据库里新增数据的程序难道不是你系统的一部分?
1ffree
2020-05-20 17:50:56 +08:00
课程表场景,可以使用 mq, 配置延迟消费
fangcan
2020-05-20 17:54:46 +08:00
可以吧 写服务,查表,满足条件发送通知
Jooooooooo
2020-05-20 18:02:05 +08:00
监听 binlog

写的时候就异步发通知
shakespark
2020-05-21 09:55:22 +08:00
如果时效要求不是很高,最简单就是定时查询
sandman511
2020-05-25 14:28:03 +08:00
@saulshao 嗯 数据是 A 系统维护的 我是 B 系统
saulshao
2020-05-25 20:11:11 +08:00
最简单的做法是在你要监控的表上面加个字段,设个缺省值。每次你就读这个新增字段的值,如果是缺省的,就处理对应的行。处理完成后将这个新增的字段里面的值 update 一下......这个做法的问题是加入你需要处理的这个表里面,有记录更新也要计算就需要额外的逻辑了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/673649

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX