com.jquicker.annotation.timer.Scheduled Maven / Gradle / Ivy
package com.jquicker.annotation.timer;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Scheduled注解必须在@Task类中才会生效
*
* @author OL
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Scheduled {
/**
* 任务名称
* @return
*/
String name() default "";
/**
* 执行周期(秒)
* @return
*/
long period() default 0;
/**
* cron表达式
* @return
*/
String cron() default "";
/**
* 是否允许同一个任务并发执行
* @return
*/
boolean concurrent() default true;
/**
* 执行策略
* atFixedRate: 以上一个任务结束时开始计时,period时间过去后,立即执行
* withFixedDelay: 以上一个任务开始的时间计时,period时间过去后,立即执行
* @return
*/
Policy policy() default Policy.atFixedRate;
/**
* 第一次执行的时间
* [yyyy-MM-dd] HH:mm:ss
* 若为空则在每次初始化后立即执行第一次
* @return
*/
String first() default "";
/**
* 最后一次执行时间,超过该时间后不再执行
* yyyy-MM-dd HH:mm:ss
* @return
*/
String last() default "";
/**
* 执行次数
* 达到指定次数后不再执行
* 若limit小于等于0将不限次数
* @return
*/
long limit() default -1;
/**
* 任务描述
* @return
*/
String description() default "";
/**
* 是否启用
* @return
* @author OL
*/
boolean enable() default true;
public enum Policy {
atFixedRate,withFixedDelay
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy