MqService.java 3.37 KB
Newer Older
yanzg's avatar
yanzg committed
1 2
package com.yanzuoguang.mq.service;

yanzg's avatar
yanzg committed
3
import com.rabbitmq.client.Channel;
yanzg's avatar
yanzg committed
4 5
import com.yanzuoguang.mq.vo.MessageVo;
import com.yanzuoguang.mq.vo.QueueVo;
6
import com.yanzuoguang.mq.vo.req.RegisterServerTokenReqVo;
7 8 9
import com.yanzuoguang.mq.vo.req.ServerMessageReqVo;
import com.yanzuoguang.mq.vo.req.ServerQueueReqVo;
import io.swagger.annotations.ApiOperation;
yanzg's avatar
yanzg committed
10
import org.springframework.amqp.core.Message;
11
import org.springframework.amqp.rabbit.core.ChannelAwareMessageListener;
12
import org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer;
yanzg's avatar
yanzg committed
13 14 15

/**
 * 消息队列服务
yanzg's avatar
yanzg committed
16
 *
yanzg's avatar
yanzg committed
17
 * @author 颜佐光
yanzg's avatar
yanzg committed
18 19 20
 */
public interface MqService {
    /**
21
     * 创建队列
yanzg's avatar
yanzg committed
22
     *
yanzg's avatar
yanzg committed
23 24
     * @param req 需要发送的消息
     * @return 创建队列
yanzg's avatar
yanzg committed
25
     */
26
    @ApiOperation(value = "创建队列")
yanzg's avatar
yanzg committed
27
    String createQueue(QueueVo req);
yanzg's avatar
yanzg committed
28 29 30 31 32 33 34

    /**
     * 发送消息
     *
     * @param req 需要发送的消息
     * @return 消息编号,但是没有任何意义,发送成功会更改
     */
35
    @ApiOperation(value = "发送消息")
yanzg's avatar
yanzg committed
36
    String message(MessageVo req);
yanzg's avatar
yanzg committed
37

yanzg's avatar
yanzg committed
38 39 40 41 42 43 44
    /**
     * 发送消息
     *
     * @param req 需要发送的消息
     * @param now 是否立即发送
     * @return 消息编号,但是没有任何意义,发送成功会更改
     */
45
    @ApiOperation(value = "发送消息")
yanzg's avatar
yanzg committed
46 47
    String message(MessageVo req, boolean now);

yanzg's avatar
yanzg committed
48 49 50 51 52 53
    /**
     * 发送错误消息
     *
     * @param req
     * @return
     */
54
    @ApiOperation(value = "发送错误消息")
yanzg's avatar
yanzg committed
55
    String messageError(MessageVo req);
yanzg's avatar
yanzg committed
56 57 58 59 60 61 62

    /**
     * 消息收到确认
     *
     * @param message 收到的消息
     * @param channel  收到的通道
     */
63
    @ApiOperation(value = "消息收到确认")
yanzg's avatar
yanzg committed
64
    void basicAck(Message message, Channel channel);
65 66 67 68

    /**
     * 删除当前服务器的队列
     *
yanzg's avatar
yanzg committed
69
     * @param req 请求数据
70 71 72 73 74 75 76
     * @return
     */
    String removeServerQueue(ServerQueueReqVo req);

    /**
     * 建立当前服务器的队列
     *
77
     * @param req 请求数据
78 79 80
     * @return
     */
    @ApiOperation(value = "建立当前服务器的队列")
yanzg's avatar
yanzg committed
81 82
    String createServerQueue(ServerQueueReqVo req);

83 84 85 86 87 88 89 90 91 92
    /**
     * 动态注册消费者回调队列
     *
     * @param queueName       队列名称
     * @param messageListener  消费者
     * @return
     */
    @ApiOperation(value = "动态注册消费者回调队列")
    SimpleMessageListenerContainer setQueueConsumer(String queueName, ChannelAwareMessageListener messageListener);

yanzg's avatar
yanzg committed
93 94 95 96 97 98 99 100 101
    /**
     * 注册当前消费队列的回调
     *
     * @param req      请求数据
     * @param listener 处理函数
     * @return
     */
    @ApiOperation(value = "注册当前消费队列的回调")
    String setServerQueueConsumer(ServerQueueReqVo req, ChannelAwareMessageListener listener);
102 103 104 105 106 107 108 109 110 111 112 113

    /**
     * 注册当前服务器的token,超期后需要重新注册
     *
     * @param req
     * @return
     */
    @ApiOperation(value = "注册当前服务器的token,超期后需要重新注册")
    String registerServerToken(RegisterServerTokenReqVo req);

    /**
     * 删除token的执行
yanzg's avatar
yanzg committed
114
     *
115 116 117 118 119 120 121 122
     * @param req
     */
    @ApiOperation(value = "删除token的执行")
    void removeToken(RegisterServerTokenReqVo req);

    /**
     * 发送给指定服务器消息
     *
yanzg's avatar
yanzg committed
123
     * @param req
124 125 126 127
     * @return
     */
    @ApiOperation(value = "发送给指定服务器消息")
    String sendServerMessage(ServerMessageReqVo req);
yanzg's avatar
yanzg committed
128
}