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

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

  •  
  •   sandman511 · May 20, 2020 · 3697 views
    This topic created in 2357 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
    zhangyp123
    May 20, 2020
    1
    canal
    dorothyREN
    dorothyREN
    May 20, 2020
    2
    我只知道 mssql 可以用触发器直接发送 http 请求
    tomato1111
    tomato1111
    May 20, 2020
    3
    触发器
    asAnotherJack
    asAnotherJack
    May 20, 2020
    4
    触发器,或者从 binlog 入手可不可以啊
    tomczhen
    tomczhen
    May 20, 2020
    5
    Oracle 和 SQL Server 可以利用内置 的 Message Queue 功能来做,之前有做过 https://github.com/TomCzHen/jiandaoyun_push_tool 一个(顺便求个星)。可以配合修改业务存储过程,触发器来配合实现。

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

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

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