Explorar el Código

过滤重复令牌推送

linhaohong hace 5 meses
padre
commit
bb22ca82a0
Se han modificado 1 ficheros con 9 adiciones y 0 borrados
  1. 9 0
      Service/DevicePushService.py

+ 9 - 0
Service/DevicePushService.py

@@ -199,6 +199,7 @@ class DevicePushService:
                 redis_obj.set_data(msg_key, json.dumps(d_params), 60)
 
                 push_kwargs = params['push_kwargs']
+                push_token_list = []
                 for up in params['uid_set_push_list']:
                     push_type = up['push_type']
                     lang = up['lang']
@@ -206,13 +207,18 @@ class DevicePushService:
                     if tz is None or tz == '':
                         tz = 0
                     if params['event_type'] in [606, 607] and push_type in [5, 6]:
+                        process_token = up['jg_token_val']
                         push_kwargs['jg_token_val'] = up['jg_token_val']
                     else:
+                        process_token = up['token_val']
                         if 'jg_token_val' in push_kwargs:
                             push_kwargs.pop('jg_token_val')
 
                     appBundleId = up['appBundleId']
                     token_val = up['token_val']
+                    if process_token in push_token_list:
+                        LOGGING.info("uid:{}, 重复token_val{},".format(uid, token_val))
+                        continue
                     # 发送标题
                     msg_title = cls.get_msg_title(nickname=params['nickname'])
                     # 发送内容
@@ -241,6 +247,9 @@ class DevicePushService:
                         kwargs=params
                     )
                     push_thread.start()
+
+                    # 过滤相同的token_val
+                    push_token_list.append(process_token)
         except Exception as e:
             ERROR_INFO_LOGGER.info(
                 '推送消息线程异常,uid:{},error_line:{},error_msg:{}'