V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Karte  ›  全部回复第 3 页 / 共 8 页
回复总数  151
1  2  3  4  5  6  7  8  
27 天前
回复了 Legman 创建的主题 Kubernetes k8s 集群节点使用什么 Linux 发行版
为什么都是 k8s v1.28.
60 天前
回复了 6234127 创建的主题 Visual Studio Code vscode 如何写 markdown 笔记?
@makizhang 现在有点想从 notion 换成 obsidian 了.
60 天前
回复了 nunterr 创建的主题 程序员 有没有对输入法安全有过研究的?
推荐 RIME, 不过我是用 rime 会出现程序死机的情况, 只要重启 RIME 服务就会恢复.
60 天前
回复了 JiangBao1231 创建的主题 生活 今天早上接到了 3 个航空延误诈骗
我没收到过. 看样子在骗子眼里我是穷人, 挺好的.
certbot 自动更新替换, 和 acme.sh 一个道理.
方案三:
直接用现成的消息队列, 把要处理的消息丢到队列里. 消费者直接多线程从消息队列中获取数据处理. 这个开发方案是可以做到代码量最小.
方案二:

1. 创建一个对象, 对象记录一个查询位置, 查询数量.
2. 每个线程通过加锁读取该对象获取位置和数量, 并在获取后更新当前查询位置. 释放锁
3. 通过之前获取到的查询位置, 查询数量从数据库获取一段范围的数据.
4. 将数据丢入线程本地队列, 依次处理.
5. 对暂时放弃的数据 id 存入 步骤一 对象中. 采用 CopyOnWrite 方法更新对象值.

这个方案将查询 IO 放入到了每个线程, 线程只需要在获取当前处理位置时加锁就好了. 这样锁的时间十分短暂, 几乎可以做到 "无锁" 的情况. 但是需要注意线程数量, 查询数量参数; 尽可能的将线程数拉小, 查询数量拉大, 这样线程可以更专注处理数据, 而不是一直等待 IO 返回.
1. 创建一个带有并发控制所的队列.
2. 每个线程从该队列中获取数据.
3. 在获取数据时, 如果队列为空, 则由当前线程请求数据库, 批量读取数据丢入队列.
4. 数据暂时放弃时, 将数据丢入队列底部.

这样就好了. 在读取数据时通过锁做到数据获取无冲突, 而且不会有重复的数据从数据库中读取; 另一方面也降低了 IO 请求.

这个方案的缺点在获取数据时会有锁的存在, 如果数据处理比较快, 可能会遇到其他线程在等待其中一个线程读取数据库的返回.
我选 K70 PRO
159 天前
回复了 perbugwei 创建的主题 NGINX 关于 nginx 代理的问题
nginx redirect (rewrite) 不支持 POST 转发.
160 天前
回复了 somereason 创建的主题 Android 给安卓手机换高容量电池可行吗?
这么高是想做炸弹嘛, 第三方的电芯都敢用.
你先明确你的目的, 使用需求, 充电习惯之类的. 8000mA 的都是给跑外卖的, 长时间在外, 且一直开着导航的那批用户设计的. 假设你每日都回家充电, 使用频率不高, 没必要换大容量的电芯, 直接换一个相同容量或者稍微高一点的品牌电芯就好了.
在你购买的时候, 不要给自己创造需求. 按照你当前的需求去选购是最好的, 臆想的需求永无止境, 干脆直接搭电网上算了.
178 天前
回复了 RedBeanIce 创建的主题 数据库 搭建 [物联网] 数据中台
td engine 虽然是很适合物联网数据, 但是极其不稳定, 很不推荐. bug 没人修, 版本升级问题, 驱动问题.
@sexyback 整个 openClash 的进程异常退出了, 界面上的提示从 启动 -> XXX 了.
1  2  3  4  5  6  7  8  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2954 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 35ms · UTC 13:12 · PVG 21:12 · LAX 05:12 · JFK 08:12
Developed with CodeLauncher
♥ Do have faith in what you're doing.