数据库有新的记录,我就需要调某接口推送消息,这个该怎么做? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
sandman511
V2EX    程序员

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

  •  
  •   sandman511 2020-05-20 15:12:38 +08:00 2970 次点击
    这是一个创建于 1973 天前的主题,其中的信息可能已经有所发展或是发生改变。

    每分钟检索一次数据库吗

    第 1 条附言    2020-05-20 15:52:06 +08:00
    标题说的不准确 sorry
    类似于学校课程表,到了上课时间需要推送消息给学生。 应该是这么个需求。
    第 2 条附言    2020-05-20 15:52:59 +08:00
    JAVA+ORACLE
    19 条回复    2020-05-25 20:11:11 +08:00
    zhangyp123
        1
    zhangyp123  
       2020-05-20 15:22:26 +08:00
    canal
    dorothyREN
        2
    dorothyREN  
       2020-05-20 15:26:01 +08:00
    我只知道 mssql 可以用触发器直接发送 http 请求
    tomato1111
        3
    tomato1111  
       2020-05-20 15:26:58 +08:00
    触发器
    asAnotherJack
        4
    asAnotherJack      2020-05-20 15:33:46 +08:00
    触发器,或者从 binlog 入手可不可以啊
    tomczhen
        5
    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
        6
    narmgalaxy  
       2020-05-20 15:44:38 +08:00
    我觉得这可能是 x-y 问题,或许你把你的业务对象,过程完整说出来,你会得到更好的回答。
    justseemore
        7
    justseemore  
       2020-05-20 15:45:00 +08:00
    这个不应该是在写入的逻辑添加事件触发么..
    37Y37
        8
    37Y37  
       2020-05-20 15:52:14 +08:00
    signals 能完美解决,看看你所用的语言有没有,这里有一个 django signals 介绍和使用
    https://blog.ops-coffee.cn/s/cmxdafstno56ixurmd4kxa
    sandman511
        9
    sandman511  
    OP
       2020-05-20 15:52:44 +08:00
    @zhangyp123
    @dorothyREN
    @tomato1111
    @asAnotherJack
    @tomczhen
    @narmgalaxy
    @zpfhbyx
    标题说的不准确 sorry APPEND 了
    lsorrow
        10
    lsorrow  
       2020-05-20 16:19:30 +08:00
    java 可以看看 quartz,用 Spring 的话直接使用 Schedule 的 Cron
    项目启动的时候遍历一次现有数据设置任务,后续有数据插入再追加任务
    zoharSoul
        11
    zoharSoul  
       2020-05-20 16:22:33 +08:00
    订阅 bingo
    rioshikelong121
        12
    rioshikelong121  
       2020-05-20 16:23:46 +08:00
    你这个需求应该叫定时任务 job schduler

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

    写的时候就异步发通知
    shakespark
        17
    shakespark  
       2020-05-21 09:55:22 +08:00 via iPhone
    如果时效要求不是很高,最简单就是定时查询
    sandman511
        18
    sandman511  
    OP
       2020-05-25 14:28:03 +08:00
    @saulshao 嗯 数据是 A 系统维护的 我是 B 系统
    saulshao
        19
    saulshao  
       2020-05-25 20:11:11 +08:00
    最简单的做法是在你要监控的表上面加个字段,设个缺省值。每次你就读这个新增字段的值,如果是缺省的,就处理对应的行。处理完成后将这个新增的字段里面的值 update 一下......这个做法的问题是加入你需要处理的这个表里面,有记录更新也要计算就需要额外的逻辑了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5114 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 09:35 PVG 17:35 LAX 02:35 JFK 05:35
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86