skynet框架:量级可控的定时任务管理模块
存在业务玩法,在单个场景内大量使用定时事件用于触发数据更新。
skynet的定时器模块实现已经非常高效,一般不必太担心性能问题,事实上玩法的初版实现正是直接使用框架定时器处理触发。几个方面是期望做得更好的:
- 减少外部消息。框架的定时事件是通过消息机制通知到指定service的,而单位时间内能处理的外部消息数量是有限的;
- 支持取消定时事件。
- 按业务区分定时事件,以支持业务数据分析和阈值告警;
这里讨论一个优化方案;
业务层实现一个定时任务管理模块(crontab),支持业务玩法注册通知任务,使用框架timeout驱动,定时通知crontab进行处理,单次通知消费完所有timeout任务(当前帧)。模块实现:
- 单service只使用唯一的skynet.timeout驱动,确保框架定时器消息在单位时间内量级可控;
- 模块对象需要是单例(singleton);
- 支持业务向模块注册/暂停/取消定时任务;
- 单次定时通知处理的任务数量支持阈值告警,这里将量级评估交给业务层负责;
- 高可用设计,比如任务执行中trackback、单帧处理任务数量overload、任务回调函数热更等情况需要保证模块稳定且有效
本文来自博客园,作者:linxx-,转载请注明原文链接:https://www.cnblogs.com/linxx-/p/18091058
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [翻译] 为什么 Tracebit 用 C# 开发
· 腾讯ima接入deepseek-r1,借用别人脑子用用成真了~
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· DeepSeek崛起:程序员“饭碗”被抢,还是职业进化新起点?
· RFID实践——.NET IoT程序读取高频RFID卡/标签