|
@@ -52,6 +52,12 @@ class SysMessageModel extends Object_ext {
|
|
|
|
|
|
/** @var int */
|
|
|
public $ts;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 同时获取多个相同的东西,通关这个来控制 zset里member的唯一
|
|
|
+ * @var type
|
|
|
+ */
|
|
|
+ public $uniqueMask;
|
|
|
|
|
|
}
|
|
|
|
|
@@ -147,7 +153,7 @@ class SystemProc {
|
|
|
*/
|
|
|
private static function mem_addSysMsg_zset($zoneid, $value) {
|
|
|
$ts = $value->ts;
|
|
|
- $key = MemKey_GameRun::Game_SysMsgByZone_zset($zoneid);
|
|
|
+ $key = MemKey_GameRun::Game_SysMsgByZone_zset($zoneid);
|
|
|
gMem()->zadd($key, array(json_encode($value) => $ts)); # 插入消息
|
|
|
gMem()->zremrangebyscore($key, 0, $ts - self::SYS_MSG_OUTTS); # 清理过期数据
|
|
|
}
|
|
@@ -159,10 +165,12 @@ class SystemProc {
|
|
|
* @param array $datas
|
|
|
*/
|
|
|
static function pushSysMessage($zoneid, $type, $datas) {
|
|
|
+ $randNum = mt_rand(1, now());
|
|
|
$newMsg = new SysMessageModel(array(# # 添加新系统消息
|
|
|
'type' => $type,
|
|
|
'datas' => $datas,
|
|
|
- 'ts' => now()
|
|
|
+ 'ts' => now(),
|
|
|
+ 'uniqueMask' => $randNum
|
|
|
));
|
|
|
self::mem_addSysMsg_zset($zoneid, $newMsg); # 写入mem
|
|
|
}
|