美文网首页
spring boot 2 定时任务

spring boot 2 定时任务

作者: CongCo | 来源:发表于2019-06-04 16:38 被阅读0次
    spring boot 2 定时任务

    任务执行

    import org.springframework.scheduling.annotation.Async;
    import org.springframework.scheduling.annotation.EnableAsync;
    import org.springframework.scheduling.annotation.EnableScheduling;
    import org.springframework.scheduling.annotation.Scheduled;
    import org.springframework.stereotype.Component;
    
    import java.time.LocalDateTime;
    
    /**
     * 定时任务
     * @author congco
     * @date 19-6-4 下午3:01
     */
    @EnableAsync
    @EnableScheduling 
    @Component
    public class CrudeTaskSchedule {
    
        /**
         * 5S执行一次
         */
        @Async
        @Scheduled(fixedDelay = 5000)
        public void crudeTask(){
            System.out.println(LocalDateTime.now());
            System.out.println(Thread.currentThread().getName());
        }
    }
    

    说明
    @EnableScheduling 开启定时任务
    @EnableAsync 开启异步
    @Scheduled(fixedDelay = 5000) 执行时间配置

    /*
     * Copyright 2002-2018 the original author or authors.
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *      https://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
    
    package org.springframework.scheduling.annotation;
    
    import java.lang.annotation.Documented;
    import java.lang.annotation.ElementType;
    import java.lang.annotation.Repeatable;
    import java.lang.annotation.Retention;
    import java.lang.annotation.RetentionPolicy;
    import java.lang.annotation.Target;
    
    /**
     * An annotation that marks a method to be scheduled. Exactly one of
     * the {@link #cron()}, {@link #fixedDelay()}, or {@link #fixedRate()}
     * attributes must be specified.
     *
     * <p>The annotated method must expect no arguments. It will typically have
     * a {@code void} return type; if not, the returned value will be ignored
     * when called through the scheduler.
     *
     * <p>Processing of {@code @Scheduled} annotations is performed by
     * registering a {@link ScheduledAnnotationBeanPostProcessor}. This can be
     * done manually or, more conveniently, through the {@code <task:annotation-driven/>}
     * element or @{@link EnableScheduling} annotation.
     *
     * <p>This annotation may be used as a <em>meta-annotation</em> to create custom
     * <em>composed annotations</em> with attribute overrides.
     *
     * @author Mark Fisher
     * @author Juergen Hoeller
     * @author Dave Syer
     * @author Chris Beams
     * @since 3.0
     * @see EnableScheduling
     * @see ScheduledAnnotationBeanPostProcessor
     * @see Schedules
     */
    @Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE})
    @Retention(RetentionPolicy.RUNTIME)
    @Documented
    @Repeatable(Schedules.class)
    public @interface Scheduled {
    
        /**
         * A special cron expression value that indicates a disabled trigger: {@value}.
         * <p>This is primarily meant for use with ${...} placeholders, allowing for
         * external disabling of corresponding scheduled methods.
         * @since 5.1
         */
        String CRON_DISABLED = "-";
    
    
        /**
         * A cron-like expression, extending the usual UN*X definition to include triggers
         * on the second as well as minute, hour, day of month, month and day of week.
         * <p>E.g. {@code "0 * * * * MON-FRI"} means once per minute on weekdays
         * (at the top of the minute - the 0th second).
         * <p>The special value {@link #CRON_DISABLED "-"} indicates a disabled cron trigger,
         * primarily meant for externally specified values resolved by a ${...} placeholder.
         * @return an expression that can be parsed to a cron schedule
         * @see org.springframework.scheduling.support.CronSequenceGenerator
         */
        String cron() default "";
    
        /**
         * A time zone for which the cron expression will be resolved. By default, this
         * attribute is the empty String (i.e. the server's local time zone will be used).
         * @return a zone id accepted by {@link java.util.TimeZone#getTimeZone(String)},
         * or an empty String to indicate the server's default time zone
         * @since 4.0
         * @see org.springframework.scheduling.support.CronTrigger#CronTrigger(String, java.util.TimeZone)
         * @see java.util.TimeZone
         */
        String zone() default "";
    
        /**
         * Execute the annotated method with a fixed period in milliseconds between the
         * end of the last invocation and the start of the next.
         * @return the delay in milliseconds
         */
        long fixedDelay() default -1;
    
        /**
         * Execute the annotated method with a fixed period in milliseconds between the
         * end of the last invocation and the start of the next.
         * @return the delay in milliseconds as a String value, e.g. a placeholder
         * or a {@link java.time.Duration#parse java.time.Duration} compliant value
         * @since 3.2.2
         */
        String fixedDelayString() default "";
    
        /**
         * Execute the annotated method with a fixed period in milliseconds between
         * invocations.
         * @return the period in milliseconds
         */
        long fixedRate() default -1;
    
        /**
         * Execute the annotated method with a fixed period in milliseconds between
         * invocations.
         * @return the period in milliseconds as a String value, e.g. a placeholder
         * or a {@link java.time.Duration#parse java.time.Duration} compliant value
         * @since 3.2.2
         */
        String fixedRateString() default "";
    
        /**
         * Number of milliseconds to delay before the first execution of a
         * {@link #fixedRate()} or {@link #fixedDelay()} task.
         * @return the initial delay in milliseconds
         * @since 3.2
         */
        long initialDelay() default -1;
    
        /**
         * Number of milliseconds to delay before the first execution of a
         * {@link #fixedRate()} or {@link #fixedDelay()} task.
         * @return the initial delay in milliseconds as a String value, e.g. a placeholder
         * or a {@link java.time.Duration#parse java.time.Duration} compliant value
         * @since 3.2.2
         */
        String initialDelayString() default "";
    
    }
    

    在线cron生成器

    image.png
    • 如果需要自定义线程池的大小,在配置文件中添加配置
    image.png

    相关文章

      网友评论

          本文标题:spring boot 2 定时任务

          本文链接:https://www.haomeiwen.com/subject/iskrxctx.html