|
|
package com.sunyo.wlpt.message.bus.service.service.impl;
|
|
|
|
|
|
import com.sunyo.wlpt.message.bus.service.domain.BusExchange;
|
|
|
import com.sunyo.wlpt.message.bus.service.domain.BusQueue;
|
|
|
import com.sunyo.wlpt.message.bus.service.domain.XmlData;
|
|
|
import com.sunyo.wlpt.message.bus.service.service.MessageNoteService;
|
|
|
import com.sunyo.wlpt.message.bus.service.service.RoutingKeyService;
|
|
|
import com.sunyo.wlpt.message.bus.service.service.UserMessageBindingService;
|
|
|
import org.springframework.scheduling.annotation.Async;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
|
/**
|
|
|
* @author 子诚
|
|
|
* Description:这个Service,用来保存异步任务;
|
|
|
* 注意点:异步任务需要单独放在一个类中
|
|
|
* 时间:2020/7/30 15:59
|
|
|
*/
|
|
|
@Component
|
|
|
public class AsyncTaskService {
|
|
|
|
|
|
@Resource
|
|
|
private MessageNoteService messageNoteService;
|
|
|
|
|
|
@Resource
|
|
|
private RoutingKeyService routingKeyService;
|
|
|
|
|
|
@Resource
|
|
|
private UserMessageBindingService userMessageBindingService;
|
|
|
|
|
|
/**
|
|
|
* 异步,无论消息是否发送成功,将消息存储于数据库
|
|
|
*
|
|
|
* @param sentData {@link XmlData}
|
|
|
*/
|
|
|
@Async
|
|
|
public void saveMessage(XmlData sentData)
|
|
|
{
|
|
|
// 无论消息是否发送成功,将消息存储于数据库
|
|
|
messageNoteService.insertMessageSelective(sentData);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 当删除服务器的时候
|
|
|
*/
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 当删除虚拟主机的时候
|
|
|
*/
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 当删除交换机的时候,
|
|
|
* 同时,删除对应的路由键,删除包含交换机的绑定关系
|
|
|
*/
|
|
|
@Async
|
|
|
void exchangeCascadeDelete(BusExchange busExchange)
|
|
|
{
|
|
|
// 删除相关路由键
|
|
|
routingKeyService.deleteByExchangeId(busExchange.getId());
|
|
|
// 删除相关配置关系
|
|
|
userMessageBindingService.deleteByExchangeId(busExchange.getId());
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 当删除队列的时候,删除包含队列的绑定关系
|
|
|
*/
|
|
|
@Async
|
|
|
void queueCascadeDelete(BusQueue busQueue)
|
|
|
{
|
|
|
// 删除相关配置关系
|
|
|
userMessageBindingService.deleteByQueueId(busQueue.getId());
|
|
|
}
|
|
|
} |
...
|
...
|
|