package cn.axzo.workflow.starter.handler.filter.global;

import org.apache.rocketmq.common.message.MessageExt;
import org.springframework.core.Ordered;

/**
 * 对流程引擎广播的事件进行全局过滤，业务可扩展的 MQ 消息过滤接口
 * <p>
 * 注意：Order 的顺序，遵循值越小越优先。（取值范围：Integer.MIN_VALUE - Integer.MAX_VALUE）
 *
 * @author wangli
 * @since 2024/6/4 17:04
 */
public interface BroadcastMessageQueueFilter extends Ordered {

    /**
     * @param message  MQ 消息元数据
     * @param jsonData MQ 消息中的 payload，是 JSON 格式的字符串
     * @return 返回 true 时，将<strong color=orange>跳过</strong>该 {@link MessageExt} 消息，不进行消费
     */
    boolean doFilter(MessageExt message, String jsonData);

}
