问题描述
我们尝试开发一个 cron 批处理。 我配置了 @SchedulerLock 注释,但这些不起作用。此代码可能适用于 1 个以上的节点。我在 Github 上读到 @SchedulerLock 可以与这些工具一起使用,但不起作用。我也尝试过,@TryLock 但也没有效果。我需要帮助来运行这些代码,因为我不知道代码中的失败是什么。谢谢!
@SpringBootApplication
@EnableAutoConfiguration
@EnableCaching
public class AppExportacionDatos {
public static void main(String[] args) {
SpringApplication.run(AppExportacionDatos.class,args);
}
}
@Configuration
@EnableScheduling
@EnableSchedulerLock(defaultLockAtMostFor = "540m")
public class CommonConfig {
@Bean
public LockProvider lockProvider(DataSource dataSource) {
return new JdbcTemplateLockProvider(
JdbcTemplateLockProvider.Configuration.builder()
.withJdbcTemplate(new JdbcTemplate(dataSource))
.usingDbTime() // Works on Postgres,MysqL,MariaDb,MS sql,Oracle,DB2,Hsql and H2
.build()
);
}
@Bean
public MessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasename("classpath:i18n/messages");
messageSource.setdefaultencoding("ISO-8859-1");
return messageSource;
}
@Bean
public LocalValidatorfactorybean getValidator() {
LocalValidatorfactorybean bean = new LocalValidatorfactorybean();
bean.setValidationMessageSource(messageSource());
return bean;
}
}
@Component
public class BatchTasks {
// @Scheduled(cron = "${cronExpression}")
@Scheduled(fixedDelay = 60000)
@SchedulerLock(name = "scheduledTaskName")
public void generarFicheroExportacion() {
................
}
}
<dependency>
<groupId>net.javacrumbs.shedlock</groupId>
<artifactId>shedlock-spring</artifactId>
<version>4.20.0</version>
</dependency>
<dependency>
<groupId>net.javacrumbs.shedlock</groupId>
<artifactId>shedlock-provider-jdbc-template</artifactId>
<version>4.20.0</version>
</dependency>
运行应用程序的异常是:
Caused by: java.lang.classNotFoundException: net.javacrumbs.shedlock.core.LockProvider
at java.net.urlclassloader.findClass(urlclassloader.java:382) ~[?:1.8.0_281]
at java.lang.classLoader.loadClass(ClassLoader.java:418) ~[?:1.8.0_281]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355) ~[?:1.8.0_281]
at java.lang.classLoader.loadClass(ClassLoader.java:351) ~[?:1.8.0_281]
at java.lang.class.forName0(Native Method) ~[?:1.8.0_281]
at java.lang.class.forName(Class.java:348) ~[?:1.8.0_281]
at org.springframework.boot.devtools.restart.classloader.RestartClassLoader.loadClass(RestartClassLoader.java:144) ~[spring-boot-devtools-2.4.0.jar:2.4.0]
at java.lang.classLoader.loadClass(ClassLoader.java:351) ~[?:1.8.0_281]
at java.lang.class.getDeclaredMethods0(Native Method) ~[?:1.8.0_281]
at java.lang.class.privateGetDeclaredMethods(Class.java:2701) ~[?:1.8.0_281]
at java.lang.class.getDeclaredMethods(Class.java:1975) ~[?:1.8.0_281]
at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:463) ~[spring-core-5.3.1.jar:5.3.1]
... 26 more
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)