package org.dromara.common.mq.service;

/**
 * RocketMQ服务接口
 *
 * @author wzj
 */
public interface IRocketMQService {

    /**
     * 发送消息到指定主题
     *
     * @param topic   主题
     * @param message 消息内容
     */
    void sendMessage(String topic, Object message);

    /**
     * 发送消息到指定主题和标签
     *
     * @param topic   主题
     * @param tag     标签
     * @param message 消息内容
     */
    void sendMessage(String topic, String tag, Object message);

    /**
     * 发送延迟消息
     *
     * @param topic        主题
     * @param tag          标签
     * @param message      消息内容
     * @param delayTimeLevel 延迟级别 (1s/5s/10s/30s/1m/2m/3m/4m/5m/6m/7m/8m/9m/10m/20m/30m/1h/2h)
     */
    void sendDelayMessage(String topic, String tag, Object message, int delayTimeLevel);
}
