
我现在是用一个 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 设置个更新操作的触发器,然后触发器里面判断有没有更新这个值。 |
5 Ackvicent 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 vaas 2021-08-23 01:59:19 +08:00 via Android 看起来你这个值就不该放到数据库,也许你可以试试配置中心? |
9 ericls 2021-08-23 02:11:27 +08:00 via iPhone Trigger |
10 imycc 2021-08-23 03:30:29 +08:00 我们之前搞了个 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 看起来是 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,数据库触发器 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 C02TobNClov1Dz56 2021-08-23 14:12:41 +08:00 这种用配置中心很香啊, 比如 nacos |