我正在尝试创建带有计时器触发器的 Azure函数,以计划(本地)作业。我正在使用 Spring Cloud 。我无法创建Bean并安排触发器。我找不到Spring Cloud安排计时器触发的配置。我不确定缺少。
我的SpringBoot应用程序:
@SpringBootApplication
public class Config {
public static void main(String[] args) throws Exception {
SpringApplication.run(Config.class, args);
}
@Bean
public void startTimer() {
System.out.println("startTimer begin test");
TimerTriggerShiftNew ti;
}
}
class TimerTest {
public void startTimer() {
System.out.println("startTimer begin");
}
}
我的计时器触发器:
public class EmailTimeTrigger{
@FunctionName("emailtimetrigger")
public void run(
@TimerTrigger(name = "timerInfo", schedule = "0 */2 * * * *") String timerInfo,
final ExecutionContext context
) {
context.getLogger().info("Java Timer trigger function executed at: " + LocalDateTime.now());
}
}
答案 0 :(得分:0)
我认为您应该将函数名称从 startTimer
更改为 emailtimetrigger
,就像您在 @functionName
你应该在你的 pom.xml 中添加一些注释
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<azure.functions.maven.plugin.version>1.3.4</azure.functions.maven.plugin.version>
<azure.functions.java.library.version>1.3.4</azure.functions.java.library.version>
<functionAppName>spring-azure-function</functionAppName>
<functionAppRegion>francecentral</functionAppRegion>
<stagingDirectory>${project.build.directory}/azure-functions/${functionAppName}</stagingDirectory>
<functionResourceGroup>spring-azure-function-rg</functionResourceGroup>
<start-class>com.targa.labs.dev.springfunctionsazure.SpringFunctionsAzureApplication</start-class>
<wrapper.version>1.0.23.RELEASE</wrapper.version>
</properties>
您可以找到完整的示例 here