• 请不要在回答技术问题时复制粘贴 AI 生成的内容
sandman511
V2EX  ›  程序员

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

  •  
  •   sandman511 · May 20, 2020 · 3380 views
    This topic created in 2212 days ago, the information mentioned may be changed or developed.

    每分钟检索一次数据库吗

    Supplement 1  ·  May 20, 2020
    标题说的不准确 sorry
    类似于学校课程表,到了上课时间需要推送消息给学生。 应该是这么个需求。
    Supplement 2  ·  May 20, 2020
    JAVA+ORACLE
    19 replies    2020-05-25 20:11:11 +08:00
    zhangyp123
        1
    zhangyp123  
       May 20, 2020
    canal
    dorothyREN
        2
    dorothyREN  
       May 20, 2020
    我只知道 mssql 可以用触发器直接发送 http 请求
    tomato1111
        3
    tomato1111  
       May 20, 2020
    触发器
    asAnotherJack
        4
    asAnotherJack  
       May 20, 2020
    触发器,或者从 binlog 入手可不可以啊
    tomczhen
        5
    tomczhen  
       May 20, 2020
    Oracle 和 SQL Server 可以利用内置 的 Message Queue 功能来做,之前有做过 https://github.com/TomCzHen/jiandaoyun_push_tool 一个(顺便求个星)。可以配合修改业务存储过程,触发器来配合实现。

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

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

    写的时候就异步发通知
    shakespark
        17
    shakespark  
       May 21, 2020 via iPhone
    如果时效要求不是很高,最简单就是定时查询
    sandman511
        18
    sandman511  
    OP
       May 25, 2020
    @saulshao 嗯 数据是 A 系统维护的 我是 B 系统
    saulshao
        19
    saulshao  
       May 25, 2020
    最简单的做法是在你要监控的表上面加个字段,设个缺省值。每次你就读这个新增字段的值,如果是缺省的,就处理对应的行。处理完成后将这个新增的字段里面的值 update 一下......这个做法的问题是加入你需要处理的这个表里面,有记录更新也要计算就需要额外的逻辑了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   4243 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 95ms · UTC 05:16 · PVG 13:16 · LAX 22:16 · JFK 01:16
    ♥ Do have faith in what you're doing.