java springboot定时任务、创建线程池,创建定时任务

java springboot定时任务、创建线程池,创建定时任务

在Java Spring Boot中配置定时任务线程池有以下几个配置项:

  1. spring.task.scheduling.pool.size:指定定时任务线程池的大小,默认为1。
  2. spring.task.scheduling.thread-name-prefix:指定线程名称的前缀,默认为task-
  3. spring.task.scheduling.await-termination-period:指定在应用关闭时等待定时任务线程池终止的时间,默认为10秒。

下面是一个简单的定时任务线程池的代码示例:

@Configuration
@EnableScheduling
public class TaskSchedulerConfig implements SchedulingConfigurer {

    private final int poolSize = 10;

    @Override
    public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
        ThreadPoolTaskScheduler threadPoolTaskScheduler = new ThreadPoolTaskScheduler();
        threadPoolTaskScheduler.setPoolSize(poolSize);
        threadPoolTaskScheduler.setThreadNamePrefix("my-task-");
        threadPoolTaskScheduler.initialize();

        taskRegistrar.setTaskScheduler(threadPoolTaskScheduler);
    }
}

在上述代码中,我们创建了一个大小为10的定时任务线程池,并设置了线程名称的前缀为my-task-。然后,通过taskRegistrar.setTaskScheduler(threadPoolTaskScheduler)将线程池配置应用到定时任务中。

接下来,我们可以使用上述定时任务线程池创建不同类型的定时任务。

  1. 定时任务延时执行:
@Component
public class DelayedTask {

    @Scheduled(fixedDelay = 5000) // 每隔5秒执行一次
    public void delayedTask() {
        // 执行任务逻辑
    }
}
  1. 定时执行任务:
@Component
public class ScheduledTask {

    @Scheduled(cron = "0 0 0 * * *") // 每天的午夜执行
    public void scheduledTask() {
        // 执行任务逻辑
    }
}

通过@Scheduled注解可以指定任务的调度规则,如fixedDelay表示间隔固定的时间执行,cron表示基于Cron表达式的定时调度。

同时,还可以在需要的地方注入TaskScheduler,手动创建定时任务:

@Component
public class ManualTask {

    private final TaskScheduler taskScheduler;

    public ManualTask(TaskScheduler taskScheduler) {
        this.taskScheduler = taskScheduler;
    }

    public void scheduleTask() {
        taskScheduler.schedule(() -> {
            // 执行任务逻辑
        }, new CronTrigger("0 0 0 * * *"));
    }
}

通过调用taskScheduler.schedule()方法可以手动创建一个定时任务,并指定任务的执行逻辑和调度规则。

注意:以上示例中的定时任务需要在入口类(如@SpringBootApplication所标注的类)中添加@EnableScheduling注解开启定时任务的支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小七蒙恩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值