wangrong
2026-08-30 4c949c0dc9bcae785c281c9d8125295f09810b15
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package io.dataease.utils;
 
import org.apache.commons.lang3.ObjectUtils;
 
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
 
public class DelayQueueUtils {
 
    private static final List<String> delayQueueList = new ArrayList<>();
 
    private static final ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
 
    public static void execute(String key, Runnable runnable, Long seconds) {
        seconds = ObjectUtils.isEmpty(seconds) ? 5L : seconds;
        if (delayQueueList.contains(key)) return;
        delayQueueList.add(key);
        executorService.schedule(() -> {
            runnable.run();
            delayQueueList.remove(key);
        }, seconds, TimeUnit.SECONDS);
    }
}