Replies: 4 comments 31 replies
-
|
skynet 整个系统都不依赖 walltime ,你关于时间的需求应该是自己调用系统函数实现的。 你不需要修改系统时间,而应该自己实现一个管理时间任务的服务,类似 crontab 。给这个服务增加调试功能。 |
Beta Was this translation helpful? Give feedback.
-
|
需要改动到源码,具体改动可以查看 |
Beta Was this translation helpful? Give feedback.
-
|
上面扩展 skynet 是一个解决方案,但是正如云风大哥所说,这会带来额外的维护成本,对于 skynet 框架的使用者也是一样的。我更偏向于使用不修改 skynet 源码的方案,就像是 libfaketime,有没有类似的又不和 jemalloc 冲突的方案? |
Beta Was this translation helpful? Give feedback.
-
|
我的方案是自己重新封装了一套时间系统,也就是实际上有两套时间机制,一套是稳定的固定时间,另一套设计一个时间偏移值(默认为0),支持gm修改这个偏移值供QA测试,所有应用逻辑使用这套偏差时间,框架系统级使用稳定时间(比如日志和db记录等);同时还包装了一套定时器和周期任务系统(都是lua层模块),当gm修改时间时,均会重新计算这些还未执行到的定时器重新确定执行时间(比如gm修改为快进了1天,那么每天执行一次的任务将会被立即执行一次,然后再计算下一天的执行时间)。 |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
我使用 docker 来部署测试环境,一台宿主机,N 个环境,每个 QA 一个环境(一组容器),需要提供 QA 改自己环境时间但是不影响其他环境(一组容器)的功能。
我使用 libfaketime 是可以实现该功能的,但是当我使用 jemalloc 后,就出现冲突了,原因如下:
issues
还有其他方式实现该需求吗
Beta Was this translation helpful? Give feedback.
All reactions