Forráskód Böngészése

定制化推送开启预推送线程

locky 1 éve
szülő
commit
3e2f6c1bc6
1 módosított fájl, 25 hozzáadás és 8 törlés
  1. 25 8
      Service/CustomizedPushService.py

+ 25 - 8
Service/CustomizedPushService.py

@@ -100,6 +100,7 @@ class CustomizedPushObject:
             if gateway_push_qs.exists():
                 sys_msg_list = []
                 saved_user_id_list = []
+                gateway_push_list = []
                 for gateway_push in gateway_push_qs:
                     # user_id保存列表,避免重复写入数据
                     user_id = gateway_push['user_id']
@@ -107,20 +108,36 @@ class CustomizedPushObject:
                         saved_user_id_list.append(user_id)
                         sys_msg_list.append(SysMsgModel(
                             userID_id=user_id, title=title, msg=msg, jumpLink=link, addTime=n_time, updTime=n_time))
-
-                    # 异步推送消息
-                    push_kwargs['gateway_push'] = gateway_push
-                    push_thread = threading.Thread(
-                        target=cls.start_push,
-                        kwargs=push_kwargs)
-                    push_thread.start()
-
+                    gateway_push_list.append(gateway_push)
+                # 保存系统消息和异步推送消息
                 SysMsgModel.objects.bulk_create(sys_msg_list)
+                pre_push_kwargs = {
+                    'push_kwargs': push_kwargs,
+                    'gateway_push_list': gateway_push_list
+                }
+                pre_push_thread = threading.Thread(
+                    target=cls.pre_push,
+                    kwargs=pre_push_kwargs)
+                pre_push_thread.start()
                 CUSTOMIZED_PUSH_LOGGER.info('customized_push_id:{}推送完成'.format(kwargs['id']))
         except Exception as e:
             CUSTOMIZED_PUSH_LOGGER.info('定制化推送或保存数据异常,'
                                         'error_line:{},error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
 
+    @classmethod
+    def pre_push(cls, **kwargs):
+        CUSTOMIZED_PUSH_LOGGER.info('预推送线程开始')
+        push_kwargs = kwargs['push_kwargs']
+        gateway_push_list = kwargs['gateway_push_list']
+        for gateway_push in gateway_push_list:
+            # 异步推送消息
+            push_kwargs['gateway_push'] = gateway_push
+            push_thread = threading.Thread(
+                target=cls.start_push,
+                kwargs=push_kwargs)
+            push_thread.start()
+        CUSTOMIZED_PUSH_LOGGER.info('预推送线程完成')
+
     @classmethod
     def start_push(cls, **kwargs):
         gateway_push = kwargs['gateway_push']