Browse Source

消息推送改成异步处理

liusw 7 years ago
parent
commit
cb344a77a8

+ 1 - 1
src/main/java/com/uas/ps/inquiry/service/PublicInquiryService.java

@@ -197,7 +197,7 @@ public interface PublicInquiryService {
      * @param sourceApp 应用来源
      * @throws Exception
      */
-    void notify(List<PurcInquiryItem> inquiryItems, String sourceApp) throws Exception;
+    void notifyMessage(List<PurcInquiryItem> inquiryItems, String sourceApp) throws Exception;
 
     /**
      * 针对供应商,客户对报价采纳结果进行消息通知

+ 16 - 5
src/main/java/com/uas/ps/inquiry/service/impl/InquiryServiceImpl.java

@@ -1,5 +1,6 @@
 package com.uas.ps.inquiry.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.uas.ps.core.util.CollectionUtils;
 import com.uas.ps.entity.Product;
 import com.uas.ps.entity.Status;
@@ -22,6 +23,9 @@ import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Root;
 
+import com.uas.ps.inquiry.util.FlexJsonUtils;
+import com.uas.ps.inquiry.util.HttpUtil;
+import com.uas.ps.inquiry.util.ThreadUtils;
 import javassist.NotFoundException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
@@ -179,12 +183,19 @@ public class InquiryServiceImpl implements InquiryService {
                 }
                 items = purcInquiryItemDao.save(items);
                 // 消息推送
+                final List<PurcInquiryItem> purcInquiryItems = items;
+                final String sourceapp = inquiry.getSourceapp();
                 if (null != inquiry.getSourceapp()) {
-                    try {
-                        inquiryService.notify(items, inquiry.getSourceapp());
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                    }
+                    ThreadUtils.task(new Runnable() {
+                        @Override
+                        public void run() {
+                            try {
+                                inquiryService.notifyMessage(purcInquiryItems, sourceapp);
+                            } catch (Exception e) {
+                                e.printStackTrace();
+                            }
+                        }
+                    }).run();
                 }
             }
             return inquiry;

+ 13 - 2
src/main/java/com/uas/ps/inquiry/service/impl/PublicInquiryServiceImpl.java

@@ -173,8 +173,19 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
                 try {
                     items = purcInquiryItemDao.save(items);
                     if (!CollectionUtils.isEmpty(items)) {
-                        notify(items, PRODUCERAPP);
+                        final List<PurcInquiryItem> purcInquiryItems = items;
+                        ThreadUtils.task(new Runnable() {
+                            @Override
+                            public void run() {
+                                try {
+                                    notifyMessage(purcInquiryItems, PRODUCERAPP);
+                                } catch (Exception e) {
+                                    e.printStackTrace();
+                                }
+                            }
+                        }).run();
                     }
+
                 } catch (Exception e) {
                     e.printStackTrace();
                 }
@@ -189,7 +200,7 @@ public class PublicInquiryServiceImpl implements PublicInquiryService {
      * @param sourceApp 消息来源应用
      */
     @Override
-    public void notify(List<PurcInquiryItem> inquiryItems, String sourceApp) throws Exception {
+    public void notifyMessage(List<PurcInquiryItem> inquiryItems, String sourceApp) throws Exception {
         for (PurcInquiryItem item : inquiryItems) {
            String cmpCode = null;
            if (item.getCmpCode() != null) {