reactor自定义RejectedExecutionHandler

参数

reactor-core-2.0.8.RELEASE-sources.jar!/reactor/core/dispatch/ThreadPoolExecutorDispatcher.java

/**
     * Create a new {@literal ThreadPoolExecutorDispatcher} with the given size, backlog, name, and {@link
     * java.util.concurrent.RejectedExecutionHandler}.
     *
     * @param poolSize
     *         the pool size
     * @param backlog
     *         the backlog size
     * @param threadName
     *         the name prefix to use when creating threads
     * @param rejectedExecutionHandler
     *         the {@code RejectedExecutionHandler} to use when jobs cant be submitted to the thread pool
     */
    public ThreadPoolExecutorDispatcher(int poolSize,
                                        int backlog,
                                        String threadName,
                                        BlockingQueue<Runnable> workQueue,
                                        RejectedExecutionHandler rejectedExecutionHandler) {
        super(poolSize, backlog);
        this.workQueue = workQueue;
        this.executor = new ThreadPoolExecutor(
                poolSize,
                poolSize,
                0L,
                TimeUnit.MILLISECONDS,
                workQueue,
                new NamedDaemonThreadFactory(threadName, getContext()),
                rejectedExecutionHandler
        );
    }
配置文件的size,对应ThreadPoolExecutor的corePoolSize以及maximumPoolSize

自定义ThreadPoolExecutorDispatcher

Dispatcher dispatcher = new ThreadPoolExecutorDispatcher(5, 2048,"dispatcherGroup",
                new LinkedBlockingQueue<Runnable>(2048),
                new ThreadPoolExecutor.DiscardOldestPolicy());
EventBus eventBus = EventBus.create(eventBusEnv,dispatcher);
参数 reactor-core-2.0.8.RELEASE-sources.jar!/reactor/core/dispatch/ThreadPoolExecutorDispatcher.java /** * Create a new {@literal ThreadPoolExecutorDispatcher} with the given size, backlog, name, and {@link * java.util.concurrent.RejectedExecutionHandler}. * * @param poolSize * the pool size * @param backlog * the backlog size * @param threadName * the name prefix to use when creating threads * @param rejectedExecutionHandler * the {@code RejectedExecutionHandler} to use when jobs cant be submitted to the thread pool */ public ThreadPoolExecutorDispatcher(int poolSize, int backlog, String threadName, BlockingQueue workQueue, RejectedExecutionHandler rejectedExecutionHandler) { super(poolSize, backlog); this.workQueue = workQueue; this.executor = new ThreadPoolExecutor( poolSize, poolSize, 0L, TimeUnit.MILLISECONDS, workQueue, new NamedDaemonThreadFactory(threadName, getContext()), rejectedExecutionHandler ); } 配置文件的size,对应ThreadPoolExecutor的corePoolSize以及maximumPoolSize 自定义ThreadPoolExecutorDispatcher Dispatcher dispatcher = new ThreadPoolExecutorDispatcher(5, 2048,"dispatcherGroup", new LinkedBlockingQueue (2048), new ThreadPoolExecutor.DiscardOldestPolicy()); EventBus eventBus = EventBus.create(eventBusEnv,dispatcher);
经验分享 程序员 微信小程序 职场和发展