我现在是用一个 while 循环每隔一秒钟查询一次来判断的,有没有什么其他方法可以实现这个需求? 谢谢
1
lishunan246 2021-08-23 00:04:08 +08:00 via Android
canal
|
2
mtrec 2021-08-23 00:28:07 +08:00
不如说说你想干什么以及你现在的做法有什么让你不满的地方
|
3
qiyuey 2021-08-23 00:30:07 +08:00 via Android
监听 binlog
|
4
dorothyREN 2021-08-23 00:32:20 +08:00 2
设置个更新操作的触发器,然后触发器里面判断有没有更新这个值。
|
5
Ackvincent OP @lishunan246
@mtrec @qiyuey @dorothyREN 我现在代码是这样 感觉很蠢得样子 ```python while True: print('start check') action = mysql.get_action() if action == 'turn_on': turn_on_the_light() elif action == ''turn_off': turn_off_the_light() else: time.sleep(1) continue ``` |
6
dangyuluo 2021-08-23 01:00:57 +08:00
自己写个插件
MySQL UDF |
8
dustynight 2021-08-23 01:59:19 +08:00 via Android 2
看起来你这个值就不该放到数据库,也许你可以试试配置中心?
|
9
ericls 2021-08-23 02:11:27 +08:00 via iPhone
Trigger
|
10
imycc 2021-08-23 03:30:29 +08:00 3
我们之前搞了个 trigger,当插入值的时候自动触发其他关联表的更新。
但是后面负载高的时候操作偶尔会丢失,找了 DBA 查了 binlog,貌似是出错了还是怎么的,反正排查特别麻烦。查错误的时间快够我重构接口了。 如果你有数据库的权限去监听变更,那一般来说 Model 层代码也是自己维护的,这种事情最好在业务逻辑里面做。 当更新字段值的时候,自己写逻辑,想直接改关联数据,还是用消息队列,都可以比较直观地执行,后期查日志也方便。 |
11
qiyuey 2021-08-23 03:38:36 +08:00 via Android
@Ackvincent 搜索配置中心
|
12
CEBBCAT 2021-08-23 04:11:10 +08:00 via Android 1
看起来是 IoT 应用,为什么没有采用基于订阅 /回调之类的架构呢? MySQL 连接还是比较重的吧
|
13
ila 2021-08-23 06:42:33 +08:00 via Android
trigger+scheduler event
|
14
darkengine 2021-08-23 08:10:37 +08:00
@Ackvincent action 就不应该存到数据库里,放队列里更合适
|
15
bthulu 2021-08-23 08:45:38 +08:00
订阅并解析 binlog 就行了
|
16
update 2021-08-23 08:55:11 +08:00 1
1,数据库触发器
2,binlog 监听 3,业务代码层监听 |
17
inhzus 2021-08-23 08:58:00 +08:00 via iPhone
觉得这种业务形式不太适合数据库,可以看看类似于阿里云 configserver 的产品
|
18
cheng6563 2021-08-23 09:24:51 +08:00
如果懒得改,就给这数据加个版本号然后继续凑合用即可。
|
19
mtrec 2021-08-23 09:29:55 +08:00
@Ackvincent 除了感觉很蠢有没有别的问题 如果能满足现在的需求 没有必要增加别的依赖
|
20
PiersSoCool 2021-08-23 10:16:08 +08:00
x s 轮询一次
|
21
fregie 2021-08-23 10:19:10 +08:00
用 etcd
|
22
Ackvincent OP 多谢楼上各位,看了各位的解决方案,我还是决定用自己比较蠢的方法,毕竟虽然蠢,但是没有什么坑要踩。
|
23
ch2 2021-08-23 12:58:59 +08:00
怎么方便怎么来
|
24
razertory 2021-08-23 13:40:56 +08:00
订阅 binlog
|
25
masterclock 2021-08-23 13:49:53 +08:00
1. 又不是不能用
2. 带持久化的 mqtt,用 retained 的消息 |
27
chengyiqun 2021-08-23 14:12:41 +08:00
这种用配置中心很香啊, 比如 nacos
|