Skip to content

Joydevelop/delay-queue

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

基于Redis实现延时队列

集成方式

1、实现com.joy.queue.AbstractWaitQueueExecutor

@Setter
@Getter
@Slf4j
@Component
public class DefaultWaitQueueExecutor extends AbstractWaitQueueExecutor {

    private BiFunction<String, String, Boolean> consumer;

    public DefaultWaitQueueExecutor(ThreadPoolTaskExecutor taskExecutor) {
        super(taskExecutor);
    }

    @Override
    public boolean processByQueueName(String queueName, String subject, Object extData) {
        log.debug("队列运行程序 queueName:{} subject:{}", queueName, subject);
        if (null != getConsumer()) {
            return getConsumer().apply(queueName, subject);
        }
        return false;
    }
}

2.调用com.joy.queue.WaitQueueProvider#enqueue入列

    WaitQueueInfo waitQueueInfo1 = waitQueueProvider.enqueue(QUEUE_NAME, "test1");

3.调用任意队列名的com.joy.queue.WaitQueueProvider#query即可启动队列

        WaitQueueInfo waitQueueInfo = waitQueueProvider.query(QUEUE_NAME, "test1");