ソースを参照

修改APP消息推送间隔

zhangdongming 2 年 前
コミット
f54da00723
2 ファイル変更11 行追加22 行削除
  1. 7 10
      Controller/DetectController.py
  2. 4 12
      Controller/DetectControllerV2.py

+ 7 - 10
Controller/DetectController.py

@@ -93,7 +93,7 @@ class NotificationView(View):
                 values('token_val', 'app_type', 'appBundleId', 'm_code',
                        'push_type', 'userID_id', 'userID__NickName',
                        'lang', 'm_code', 'tz', 'uid_set__nickname', 'uid_set__detect_interval', 'uid_set__detect_group',
-                       'uid_set__channel')
+                       'uid_set__channel', 'uid_set__new_detect_interval')
 
             uid_push_list = []
             for qs in uid_push_qs:
@@ -121,16 +121,12 @@ class NotificationView(View):
             else:
                 detect_med_type = 2  # 为2的话,既推送,又存库
                 # detect_group=0允许全部推送的时候
-                if detect_group == '0' or detect_group == '':
-                    redisObj.set_data(key=dkey, val=1, expire=detect_interval)
-                else:
-                    detect_group_list = detect_group.split(',')
-                    if event_type in detect_group_list:
-                        if detect_interval < 60:
-                            detect_interval = 60
-                        redisObj.set_data(key=dkey, val=1, expire=detect_interval)
+                new_detect_interval = uid_push_list[0]['uid_set__new_detect_interval']
+                detect_interval = new_detect_interval if new_detect_interval > 0 else detect_interval
+                detect_interval = 60 if detect_interval < 60 else detect_interval
+                redisObj.set_data(key=dkey, val=1, expire=detect_interval-5)
                 redisObj.set_data(key=pkey, val=1, expire=60)
-
+        logger.info('APP消息推送V1接口,是否进行APP推送:{},1为不推送,间隔:{}'.format(detect_med_type, detect_interval))
         # 旧模式并且没有pkey,重新创建一个
         if not detect_group and not have_pkey:
             redisObj.set_data(key=pkey, val=1, expire=60)
@@ -209,6 +205,7 @@ class NotificationView(View):
 
             # 推送
             if detect_med_type == 2 or detect_med_type == 0:
+                logger.info('准备推送{}'.format(detect_med_type))
                 try:
                     if push_type == 0:  # ios apns
                         do_apns_code = self.do_apns(**kwag_args)

+ 4 - 12
Controller/DetectControllerV2.py

@@ -84,8 +84,7 @@ class NotificationV2View(View):
             have_ykey = redisObj.get_data(key=ykey)  # uid_set 数据库缓存
             have_pkey = redisObj.get_data(key=pkey)  # 一分钟限制key
             have_dkey = redisObj.get_data(key=dkey)  # 推送消息时间间隔
-            logger.info('ykey:{}, pkey: {}, dkey: {},'.format(have_ykey, have_pkey, have_dkey))
-
+            logger.info('ykey:{}, pkey: {}, dkey: {}'.format(have_ykey, have_pkey, have_dkey))
             # 一分钟内不推送
             if have_pkey:
                 return JsonResponse(status=200, data={'code': 0, 'msg': 'Push again in one minute'})
@@ -109,22 +108,15 @@ class NotificationV2View(View):
 
             nickname = redis_list[0]['uid_set__nickname']
             detect_interval = redis_list[0]['uid_set__detect_interval']
-            detect_group = redis_list[0]['uid_set__detect_group']
-
             if not nickname:
                 nickname = uid
-
             if not have_dkey:
                 # 设置推送消息的时间间隔
                 new_detect_interval = redis_list[0]['uid_set__new_detect_interval']
                 detect_interval = new_detect_interval if new_detect_interval > 0 else detect_interval
                 detect_interval = 60 if detect_interval < 60 else detect_interval
-                if detect_group == '0' or detect_group == '':
-                    redisObj.set_data(key=dkey, val=1, expire=detect_interval)
-                else:
-                    detect_group_list = detect_group.split(',')
-                    if event_type in detect_group_list:
-                        redisObj.set_data(key=dkey, val=1, expire=detect_interval)
+                redisObj.set_data(key=dkey, val=1, expire=detect_interval-5)
+                logger.info('APP消息推送间隔:{}s'.format(detect_interval))
 
             if is_st == 1 or is_st == 3:  # 使用aws s3
                 aws_s3_client = s3_client(region=region)
@@ -204,7 +196,7 @@ class NotificationV2View(View):
                 try:
                     # 推送消息
                     if not have_dkey:
-                        logger.info('准备推送:{}, {}'.format(uid, request_dict))
+                        logger.info('APP准备推送:{}, {}'.format(uid, request_dict))
                         if (is_st == 1 or is_st == 3) and (push_type == 0 or push_type == 1):  # 推送显示图片
                             if is_st == 1:
                                 key = '{}/{}/{}.jpeg'.format(uid, channel, n_time)