相关分享
嵌入主线程消息循环的任务调度器
这篇文章记录了 soluna/ltask 在移植到 wasm 和非 Windows 平台过程中遇到的一个典型工程难题:如何在主线程事件循环中执行特定任务,同时仍保留原有多线程调度模型。
问题的核心来自图形 API 和平台约束。sokol 并非线程安全,OpenGL 又依赖当前线程状态,而 wasm 环境下主线程、worker、pthread API 的边界进一步放大了调度复杂度。
作者的解决思路不是重写整个调度器,而是在 ltask 中“打洞”:让某些必须在主线程回调中执行的 Lua 任务,临时从调度表中移出,由主线程接管执行,完成后再归还给调度器。
文章最有价值的地方,是把 coroutine、Lua 虚拟机、C 栈、主线程事件循环和图形 API 约束放在同一个工程场景中分析。它不适合泛泛阅读,但对做游戏引擎、wasm 移植或复杂运行时调度的开发者很有参考价值。
一次消息队列异常堆积的排查
背景前两天收到业务反馈有一个 topic 的分区消息堆积了,根据之前的经验来看,要么是业务消费逻辑出现问题导致消费过慢,当然也有小概率是消息队列的 Bug(我们使用的是 pulsar)。排查通过排查,发现确实是在一点多的时候消息堆积了(后面是修复之后堆积开始下降)。。。
IM服务器设计-如何解决消息的乱序
IM消息需要面对的另一个难题:如何保证收到的消息不乱序。下面先展开看看要解决这个难题有哪些障碍。
IM服务器设计-消息存储
这部分专门讲述IM消息存储的设计。消息存储的难度在于,要考虑以下的场景:
1、离线消息存储。即发送消息时对方不在线该怎么处理。
2、单聊、群聊消息。
3、随着用户量越来越大,应该以后如何扩展。
使用 SQL 的方式查询消息队列数据以及踩坑指南
为了让业务团队可以更好的跟踪自己消息的生产和消费状态,需要一个类似于表格视图的消息列表,用户可以直观的看到发送的消息;同时点击详情后也能查到消息的整个轨迹。
新手如何快速参与开源项目
这半年时间大大小小提了十几个 PR ,也逐渐捋清楚了一些上手的方法和套路,所以如果你也想参与开源,但苦于不知道如何入门,看完后希望对你有所帮助。
必备的VScode插件
VS Code在没有这个扩展的情况下也会支持Python代码高亮显示。但还是推荐你安装Python这个扩展,Python是由微软自己开发的,与VS Code是同一个创建者。它对提高Python开发人员的效率非常有用,VS Code会自动建议你在打开第一个.py文件后立即安装它。
Java框架Mybatis插件开发指南,超详细!
关于Mybatis插件,大部分人都知道,也都使用过,但很多时候,我们仅仅是停留在表面上,知道Mybatis插件可以在DAO层进行拦截,如打印执行的SQL语句日志,做一些权限控制,分页等功能;但对其内部实现机制,涉及的软件设计模式,编程思想往往没有深入的理解。
4个强大的JavaScript运算符
你有没有花一个下午的时间阅读 Mozilla 文档?如果有,你会发现网上有很多 JS 资料,这使我们很容易忽略那些更为基础的 JS 运算符。
这些运算符不常见但很强大!在语法上看起来很相似,作用却不一样,一定要仔细阅读。
Airbnb是如何从JavaScript迁移到TypeScript的?
TypeScript 是 Airbnb 前端开发的官方语言。但是,采用 TypeScript 的过程和迁移一个包含成千上万个 JavaScript 文件的成熟代码库不是一夕发生的。TypeScript 的采用经过了最初提案、多数团队采用、测试阶段,最后落地为 Airbnb 前端开发的官方语言。
