ProjectEventMQSender.java 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. package jnpf.handler;
  2. import com.alibaba.fastjson.JSON;
  3. import jnpf.consts.ProjectEventConst;
  4. import jnpf.module.ProjectEvent;
  5. import jnpf.event.ProjectEventSender;
  6. import jnpf.properties.EventProperty;
  7. import lombok.extern.slf4j.Slf4j;
  8. import org.springframework.cloud.stream.function.StreamBridge;
  9. import org.springframework.messaging.support.MessageBuilder;
  10. /**
  11. * 自定义事件发布 MQ渠道
  12. */
  13. @Slf4j
  14. public class ProjectEventMQSender implements ProjectEventSender {
  15. private StreamBridge streamBridge;
  16. private EventProperty eventProperty;
  17. public ProjectEventMQSender(StreamBridge streamBridge, EventProperty eventProperty) {
  18. this.streamBridge = streamBridge;
  19. this.eventProperty = eventProperty;
  20. }
  21. @Override
  22. public void send(ProjectEvent event) {
  23. streamBridge.send(ProjectEventConst.DEFAULT_TOPIC_NAME + "-out-0"
  24. , MessageBuilder.withPayload(event)
  25. // 添加自定义事件标识
  26. .setHeader(ProjectEventConst.DEFAULT_CHANNEL_PREFIX, event.getChannel())
  27. .build());
  28. if (log.isDebugEnabled()) {
  29. log.debug("发送MQ自定义事件: {}", JSON.toJSONString(event));
  30. }
  31. }
  32. }