diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/WxFlowAbleController.java b/mallinkAdmin/src/main/java/com/iformall/controller/WxFlowAbleController.java index 516177e4d..a391d8d3d 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/WxFlowAbleController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/WxFlowAbleController.java @@ -3,6 +3,7 @@ package com.iformall.controller; import com.iformall.common.ResultData; import com.iformall.domain.po.WxFlowRecord; import com.iformall.enums.EnumFlowRecordStatus; +import com.iformall.mq.MqProducer; import com.iformall.service.WxFlowService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -26,7 +27,14 @@ public class WxFlowAbleController extends BaseController { private WxFlowService wxFlowService; @Autowired RuntimeService runtimeService; + private MqProducer mqProducer; + @ApiOperation(value = "mqSend",notes = "") + @PostMapping("/mqSend") + public ResultData mqSend() { + mqProducer.sendMessage("aaaa","topic-1","tag-1","key1"); + return new ResultData(); + } @ApiOperation(value = "启动流程",notes = "{\"businessId\":\"221178539888607232\",\"businessType\":1,\"remark\":\"意见意见。\",\"taskAssignee\":[{\"taskKey\":\"firstTaskUser\",\"assignee\":\"243650055783841792\"},{\"taskKey\":\"secondTaskUser\",\"assignee\":\"\"}],\"variables\":[{\"key\":\"contractType\",\"value\":\"1\"},{\"key\":\"contractNumber\",\"value\":\"1111\"}]}") @PostMapping("/start") public ResultData start(@RequestBody Map params) { diff --git a/mallinkAdmin/src/main/resources/application-dev.yml b/mallinkAdmin/src/main/resources/application-dev.yml index 4e12234d3..a6ea03e6a 100644 --- a/mallinkAdmin/src/main/resources/application-dev.yml +++ b/mallinkAdmin/src/main/resources/application-dev.yml @@ -53,6 +53,16 @@ spring: auth: true starttls: enable: true + rocketmq: + nameServer: 127.0.0.1:9876 + producer: + retry-times-when-send-async-failed: 0 + send-msg-timeout: 300000 + compress-msg-body-over-howmuch: 4096 + max-message-size: 4194304 + retry-another-broker-when-not-store-ok: false + retry-times-when-send-failed: 2 + aws: clientRegion: cn-northwest-1 bucketName: iformall-net diff --git a/mallinkSchedule/src/main/java/com/iformall/controller/HomeController.java b/mallinkSchedule/src/main/java/com/iformall/controller/HomeController.java index 6e106265f..19f0a596e 100644 --- a/mallinkSchedule/src/main/java/com/iformall/controller/HomeController.java +++ b/mallinkSchedule/src/main/java/com/iformall/controller/HomeController.java @@ -5,6 +5,7 @@ import com.iformall.mq.MQConfig; import com.iformall.mq.MqBaseProducer; import com.iformall.mq.impl.RabbitMqMessageProducer; import com.iformall.mq.impl.RocketMqMessageProducer; +import com.iformall.mq.MqProducer; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; @@ -29,6 +30,7 @@ public class HomeController { @Autowired private RabbitMqMessageProducer rabbitMqMessageProducer; + private MqProducer mqProducer; @ApiOperation("获取后端版本号") @@ -40,6 +42,7 @@ public class HomeController { @GetMapping("/mqtest") public ResultData mqtest() { mqBaseProducer.sendMessage("mq test 1", "topic-1", "tag-1", "key-1"); + mqProducer.sendMessage("mq test 1", "topic-1", "tag-1", "key-1"); return new ResultData(); } } \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/mq/MqProducer.java b/mallinkService/src/main/java/com/iformall/mq/MqProducer.java new file mode 100644 index 000000000..7906984cf --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/mq/MqProducer.java @@ -0,0 +1,62 @@ +package com.iformall.mq; + +import lombok.extern.slf4j.Slf4j; +import org.apache.rocketmq.client.producer.DefaultMQProducer; +import org.apache.rocketmq.client.producer.SendCallback; +import org.apache.rocketmq.client.producer.SendResult; +import org.apache.rocketmq.common.message.Message; +import org.apache.rocketmq.remoting.common.RemotingHelper; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import javax.annotation.PostConstruct; + +/** + * @Auther: luozukai + * @Date: 2019-01-31 + * @Description: RocketMQ消息生产者 + */ +@Service +@Slf4j +public class MqProducer { + private final Logger log = LoggerFactory.getLogger(this.getClass()); + private static final DefaultMQProducer producer = new DefaultMQProducer("DefaultProducer"); + @Value("${spring.rocketmq.nameServer}") + private String namesrvAddr; + + @PostConstruct + public void start(){ + try { + producer.setNamesrvAddr(namesrvAddr); + producer.start(); + log.info("Message Producer Start..."); + }catch (Exception e){ + log.error("Message Producer Start Error!!",e); + } + } + + public void sendMessage(String data, String topic, String tags, String keys) { + try { + byte[] messageBody = data.getBytes(RemotingHelper.DEFAULT_CHARSET); + Message mqMsg = new Message(topic, tags, keys, messageBody); + producer.send(mqMsg, new SendCallback() { + @Override + public void onSuccess(SendResult sendResult) { + log.info("Message Producer: Send Message Success {}", sendResult); + } + + @Override + public void onException(Throwable throwable) { + + + + log.error("Message Producer: Send Message Error ", throwable); + } + }); + } catch (Exception e) { + log.error("Message Producer: Send Message Error ", e); + } + } +}