2017-04-04 13 views
3

を@EnableSchedulingせずに実行します。どのようにそれはまだ働くのですか?春ブーツスケジューラは、私は、サンプルプロジェクトでスケジュールされたタスクを作成するには、この例を次れた注釈

のpom.xml

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 

<groupId>com.example</groupId> 
<artifactId>demo</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<packaging>jar</packaging> 

<name>demo</name> 
<description>Demo project for Spring Boot</description> 

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.5.2.RELEASE</version> 
    <relativePath/> <!-- lookup parent from repository --> 
</parent> 

<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
    <java.version>1.8</java.version> 
</properties> 

<dependencies> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-actuator</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-configuration-processor</artifactId> 
     <optional>true</optional> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-test</artifactId> 
     <scope>test</scope> 
    </dependency> 
</dependencies> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-maven-plugin</artifactId> 
     </plugin> 
    </plugins> 
</build> 

他のクラス:

@SpringBootApplication 
public class DemoApplication { 

public static void main(String[] args) { 
    SpringApplication.run(DemoApplication.class, args); 
    } 
} 

@Component 
public class ScheduledTaskRunner { 

    Logger log = LoggerFactory.getLogger(ScheduledTaskRunner.class); 

    @Scheduled(cron = "0/1 * * * * *") 
    public void run(){ 
     log.info("Hello"); 
    } 
} 

実行しないことになって、スケジュールされたタスクはありませんか?

+4

「アクチュエータ」が含まれているため、定期的にMetricsWriterを使用してメトリックをエクスポートするスケジューラがあります。 https://github.com/spring-projects/spring-boot/blob/master/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/MetricExportAutoConfiguration.java(これが追加されましたBoot 1.3.0では)。 –

+0

@ M.Deinum:ああ、そうです。ありがとうございました :)。私は解決をマークすることができますので、あなたはポストアンサーをお願いしますか? :) – Raj

答えて

5

コードが追加されたときに、spring-boot-starter-actuatorが追加されました。スケジューラが追加されました。このスケジューラは、アクチュエータによって使用され、メトリックの自動エクスポートをスケジュールする。

コードはMetricExportAutoConfigurationにあり、Spring Boot 1.3.0で追加されました。

アクチュエータを取り外すと、スケジューリングはもう機能しません。

関連する問題