SpringBoot定时任务及异步任务,启动时运行的任务

首先在Applicantion启动类上添加主键

@EnableScheduling//开启定时任务
@EnableAsync//开启异步任务
public class MsgserviceApplication  implements ApplicationListener<ContextRefreshedEvent> {
  
	public static void main(String[] args) {
		SpringApplication.run(MsgserviceApplication.class, args);
	}
	
	//启动类继承ApplicationListener<ContextRefreshedEvent>类后就可以在程序启动时执行一次任务。
		@Override
		public void onApplicationEvent(ContextRefreshedEvent event) {
			//这里调用执行的任务
		}

定时任务

@Component
public class SysstemSchedu {

    @Scheduled(cron = "0 */60 * * * ?") //每60分钟执行一次任务
    public void getAppToken() {
        //里面执行业务
    }
}

@Scheduled常用语法

每隔5秒执行一次:            @Scheduled(cron = "*/5 * * * * ?")
每隔1分钟执行一次:           @Scheduled(cron = "0 */1 * * * ?")
每天23点执行一次:           @Scheduled(cron = "0 0 23 * * ?")
每天凌晨1点执行一次:          @Scheduled(cron = "0 0 1 * * ?")
每月1号凌晨1点执行一次:      @Scheduled(cron = "0 0 1 1 * ?")
每月最后一天23点执行一次:     @Scheduled(cron = "0 0 23 L * ?")
每周星期天凌晨1点实行一次:     @Scheduled(cron = "0 0 1 ? * L")26分、29分、33分执行一次:     @Scheduled(cron = " 0 26,29,33 * * * ?")
每天的0点、13点、18点、21点都执行一次:  @Scheduled(cron = " 0 0 0,13,18,21 * * ?")

异步任务

/**
 * @author qingshi
 * @date 2022/9/28 11:18
 * info:异步处理类
 */
public interface SysncService {
	/**
	 * 保存日志
	 */
	Future<String> saveSysLog(SysLog sysLog)throws Exception;
}


@Service
public class SysncServiceImpl  extends BaseService implements SysncService{
	@Async
	@Override
	public Future<String> saveSysLog(SysLog sysLog) throws Exception {
		//执行业务方法
		return new AsyncResult<>("保存日志");
	}
}

//在其他service中调用sysncService的对应方法,即可异步执行
	sysncService.saveSysLog(sysLog);//异步保存日志
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值