All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.schoolwow.download.domain.pool.DownloadPoolConfig Maven / Gradle / Ivy

The newest version!
package cn.schoolwow.download.domain.pool;

import cn.schoolwow.quickhttp.response.Response;

import java.nio.file.Path;
import java.util.function.BiPredicate;

public interface DownloadPoolConfig {
    /**
     * 是否打印流程日志
     * */
    DownloadPoolConfig printFlowTrace(boolean printFlowTrace);

    /**
     * 指定临时文件目录
     * @param temporaryDirectoryPath 临时文件目录
     * */
    DownloadPoolConfig temporaryDirectoryPath(String temporaryDirectoryPath);

    /**
     * 下载失败重试次数(默认3次)
     * @param retryTimes 下载失败重试次数
     * */
    DownloadPoolConfig retryTimes(int retryTimes);

    /**
     * 是否强制全局单线程下载
     * @param singleThread 是否强制单线程下载
     * */
    DownloadPoolConfig singleThread(boolean singleThread);

    /**
     * 指定多线程分段下载时的块大小
     * @param blockSize 块大小kb
     * */
    DownloadPoolConfig blockSize(int blockSize);

    /**
     * 指定最大下载速度(kb/s)
     * @param maxDownloadSpeed 最大下载速度(kb/s)
     * */
    DownloadPoolConfig maxDownloadSpeed(int maxDownloadSpeed);

    /**
     * 指定全局最大线程连接个数
     * @param maxThreadConnection 最大线程连接个数(默认个数为CPU核心数*2)
     * */
    DownloadPoolConfig maxThreadConnection(int maxThreadConnection);

    /**
     * 指定全局文件保存目录
     * @param directoryPath 文件保存目录
     * */
    DownloadPoolConfig directoryPath(String directoryPath);

    /**
     * 指定最大同时下载任务个数
     * @param parallelDownloadCount 最大同时下载任务个数(默认个数为CPU核心数)
     * */
    DownloadPoolConfig parallelDownloadCount(int parallelDownloadCount);

    /**
     * 指定全局文件完整性校验函数
     * @param fileIntegrityChecker 文件完整性校验函数
     * */
    DownloadPoolConfig fileIntegrityChecker(BiPredicate fileIntegrityChecker);

    /**
     * 指定线程池事件监听接口
     * @param downloadPoolListener 线程池事件监听接口
     * */
    DownloadPoolConfig downloadPoolListener(DownloadPoolListener downloadPoolListener);

    /**
     * 获取配置参数
     * */
    PoolConfig getPoolConfig();
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy