Matz 出马了,看来这波连续剧完结了。
不是数据库还真不好去做这个查询
吊打也说不上吧,只要合理控制对应队列的大小,这种查询对队列后端的压力都不大的。
不然并发能力只有几个就太难受了。
这是指使用 SSE 实现实时传输时的并发能力吗?对应的服务器配置是?
还有一个思路,不要盯着新的 Job,而是在执行 PopulateGlobalPostsCacheJob 时,利用队列的 API,检查是否有新的 PopulateGlobalPostsCacheJob 在排队,有的话就跳过当前 Job,不再执行。
我想到的办法就是在模型的 after_commit 中,插入一个在 2 分钟后执行的异步任务。如果这时发现有等待中的任务,就取消之前的这个任务。
如果 PopulateGlobalPostsCacheJob 的语义符合要求(执行结果只和执行时间相关,和 Job enqueue 时间无关),这种场景 discard 新的异步任务,让等待中的任务正常执行,结果是相同的。
没用过,但是扫了一眼文档
https://github.com/rails/solid_queue?tab=readme-ov-file#concurrency-controls
这里的 on_conflict 似乎能支持这个用法
SSL 挂啦
AI 味太浓了,打回重写。
建议 WSL + VScode remote
我一开始也是想着用 append 的方案来避免重复发送内容,但是因为要显示后端渲染成 HTML 的 markdown,无奈改成用 update 了。
只 append markdown 给前端,然后在前端处理 markdown 渲染应该能够解决这个问题,不过当时时间有限,就没有进一步处理。
跟风发一个用 Turbo Stream 实现的流式更新 LLM 返回的消息的练手项目(其实是某不靠谱猎头机构的面试题,通过后发现目标职位根本不存在)。
https://github.com/coderliu/ai-meeting-digest
和 Rei 不同的是,我这个用了比较原始的 broadcast_action_to
感谢分享,这一点之前还真的没注意过,都是无脑 distinct: true
RubyMine 涨价前买了三年,今年到期后不打算续了。
VSCode + Ruby LSP 体验已经很不错了,最近开始尝试使用 Windsurf。
顶一下,这两年论坛里的远程岗位越来越少了,主贴提供一下薪资范围就更好了
首先 MD5 是摘要算法,不叫加密
好奇是什么原因导致的这个中文支持的问题
可怕是 master 分支又改回去了
感谢楼主的贴子让我一时兴起从 VSCode Remote + Virtualbox 虚拟机的方案切到了 WSL2 + RubyMine。
这个公司名用 Ruby on Rails 真的太合理了
目测最后查下来都和 ActionText 没关系
Cookpad?
能拿到 ID 应该是持久化成功了,save 时的 validation 应该是通过了,感觉 replica 同步延迟的可能性大一些
之前是在上海吧?这是开分矿了?

这 3 位知道自己"说了"这些话吗?说真的,这种做法太 low 了
白天在群里看到楼主的讨论,发现自己也不是太清楚这个细节,晚上 Google 搜到的下面的文章
https://medium.com/@leo_hetsch/demystifying-singleton-classes-in-ruby-caf3fa4c9d91
看完之后再看楼主这篇帖子,感觉理解得差不多了。
原来 open 在请求小文件的时候返回 StringIO 对象。。。这个特性我都没有找到对应的文档
这个坑我也踩过
@huacnlee 楼层数不太对
irb(main):001:0> 'map'.codepoints
=> [109, 97, 112]