分页请求基础参数:
package ;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.Min;
@Data
@ApiModel(description = "分页参数")
public class BasePageRequest {
@ApiModelProperty(value = "页码", example = "1")
@Min(value = 1)
private Integer current = 1;
@ApiModelProperty(value = "每页条数", example = "10")
@Min(value = 1)
private Integer size = 10;
@ApiModelProperty(value = "排序方式", notes = "ASC:升序;其他:降序")
private String order;
@ApiModelProperty(value = "排序字段")
private String orderField;
}
线程池配置:
package ;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import java.util.concurrent.Executor;
import java.util.concurrent.ThreadPoolExecutor;
@Configuration
public class TaskPoolConfig {
@Bean("taskExecutor")
public Executor taskExecutor() {
ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();
// 核心线程数:线程池创建时候初始化的线程数
taskExecutor.setCorePoolSize(20);
// 最大线程数:线程池最大的线程数,只有在缓冲队列满了之后才会申请超过核心线程数的线程
taskExecutor.setMaxPoolSize(50);
// 缓冲队列:用来缓冲执行任务的队列
taskExecutor.setQueueCapacity(800);
// 允许线程的空闲时间60秒:当超过了核心线程之外的线程在空闲时间到达之后会被销毁
taskExecutor.setKeepAliveSeconds(60);
// 线程池名的前缀:设置好了之后可以方便我们定位处理任务所在的线程池
taskExecutor.setThreadNamePrefix("taskExecutor--");
// 等待所有任务结束后再关闭线程池
taskExecutor.setWaitForTasksToCompleteOnShutdown(true);
taskExecutor.setAwaitTerminationSeconds(60);
//由调用者处理
taskExecutor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
taskExecutor.initialize();
return taskExecutor;
}
}