package com.mortals.xhx.queue;

import java.util.List;
import java.util.Set;

/**
 * 队列消息消费者接口
 *
 * @author: zxfei
 * @date: 2021/11/22 10:57
 */
public interface TbQueueConsumer<T extends TbQueueMsg> {
    /**
     * 获取当topic
     * @return
     */
    String getTopic();

    /**
     * 订阅
     */
    void subscribe();

    /**
     * 订阅（分区）
     * @param partitions
     */
    void subscribe(Set<TopicPartitionInfo> partitions);

    /**
     * 取消订阅
     */
    void unsubscribe();

    /**
     * 拉取消息间隔
     * @param durationInMillis
     * @return
     */
    List<T> poll(long durationInMillis);

    /**
     * 提交
     */
    void commit();

}
