多工自動調整Thread數量

減少因應突然大量資料侵入時,可根據策略來調整多工數量,以降低數量壓力

/**
 * 任務拆分服務
 */
public interface IGroupTaskService {

    /**
     * 任務執行
     * @param groupTaskOption
     * @param <T>
     */
    <T> void execute(GroupTaskOption<T> groupTaskOption);



    interface IGroupTask<T> {
        void run(List<T> tasks);
    }
}

void test() {

    GroupTaskService groupTaskService = new GroupTaskService();
    GroupTaskOption.GroupTaskOptionBuilder<Integer> groupTaskOptionBuilder = new GroupTaskOption.GroupTaskOptionBuilder();
    GroupTaskOption<Integer> input = groupTaskOptionBuilder
            .name("test")//
            .threadSize(threadSize)//
            .groupSize(groupSize)//
            .task(run)//
            .tasks(collect)//
            .build();
    groupTaskService.execute(input);
}

<dependency>
  <groupId>io.github.h8000572003</groupId>
  <artifactId>commons-thread</artifactId>
  <version>0.0.3</version>
</dependency>

Last updated

Was this helpful?