游戏事件队列:架构与实战经验
之前我们聊过瞬时事件和非瞬时事件,对于24小时运行的网页游戏来说,会产生大量的非瞬时事件。为了高效处理,通常的做法是将这些事件统一放入一个队列,并按结束时间排序,这就是事件队列。 然后,通过一个触发器,在事件预设时间点自动执行相应操作。
实现事件系统的方法有很多,这里介绍两种:
1. 数据库方案:
- 在数据库中创建内存表来存放事件队列,通常包含开始时间、结束时间、事件类型、事件参数等信息。
- 使用PHP循环查询该表,处理到期事件并删除对应记录。
2. 消息队列方案:
- 利用Linux消息队列存储游戏事件。
- PHP定时监听消息队列,处理到期事件并删除对应消息。
850.5KB
文件大小:
评论区