问题标签 [shedlock]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - NoClassDefFoundError: net/javacrumbs/shedlock/core/LockProvider
我们尝试开发一个 cron 批处理。我配置了 @SchedulerLock 注释,但这些不起作用。此代码可能适用于超过 1 个节点。我在 Github 中读到 @SchedulerLock 可能与这些工具一起使用,但不起作用。我也试过了,@TryLock 但也有用。我需要帮助来运行这些代码,因为我不知道代码中的故障是什么。谢谢!
运行应用程序的异常是:
java - ShedLock virsion 4.20.1-计划任务NoClassDefFoundError ClockProvider发生意外错误
我正在将 Shedlock 与 oracle DB 一起使用,我遵循了此文档https://github.com/lukas-krecan/ShedLock 我还在异常后将第 5 列“现在 TIMESTAMP(3) NULL”添加到表中。它是当前运行的唯一实例。
这是我的配置
这是配置好的bean
这是表
)
和调度的启用
这是例外
spring-boot - ShedLock - 不在 Kubernetes 上执行
我正在使用带有 JDBC 集成的 Shedlock 版本 4.22.0。我有一个配置类
对于执行,我使用注释 @SchedulerLock 例如。
一切都在本地 PC 上完美运行,但是当应用程序部署在 Kubernetes (AKS) 上时,不会触发任何任务。日志是空的。启动后的应用程序什么也不做
我还添加了调试到弹簧配置
没有记录任何内容
shedlock - Shedlock 和临时停止任务?
在多台服务器上运行多个计划任务时,Shedlock 看起来很棒,但有时,我们也需要短时间或长时间地暂停一些任务。当然,可以使用附加属性/标志来控制每个任务,但我的建议是也为此使用 Shedlock,并为我们希望停止的任务引入逻辑“节点/服务器”,并更新 shedlock 中的行- 锁定该节点的表,并在未来设置一个lockedAt 时间,并将lockUntil 设置为future + 1 秒(因此不会触发超过maxRunning 的时间)。然后它会自动重新开始,或者如果需要,我们可以进入并将时间移到更远的未来。
对 Shedlock 的这种使用有什么想法……聪明还是坏习惯?它仍然用于锁定,只是将作业锁定到逻辑假服务器。
spring-boot - 如何使用@PostConstruct 仅在一个实例中调用@Scheduled 方法
- 有需要按 cron 计划完成的工作
- 必须在 spring boot 应用程序启动时执行与作业中相同的逻辑,因此使用 @PostConstruct 方法
- 使用 Shedlock,因为它计划在多个实例中运行应用程序
问题是:如何使 @PostConstruct 方法中的逻辑仅在一个实例中调用而不在其他实例中调用?
我的代码示例:
java - 是否需要设置 LockAtMostFor 和 LockAtLeastFor?
对于一个月执行一次的任务,是否需要设置LockAtMostFor和LockAtMostFor的值,执行时间是几分钟,有几个节点有一个正在运行的服务。将值暴露给 的正确性如何
lockAtLeastFor = "PT1H" lockAtMostFor = "15m"
?
spring - Spring Shedlock 使wiremock 服务器无响应
我有一个使用 Spring 的 @Scheduled 注释使用预定作业的 Spring Boot 应用程序。我已经通过 net.javacrumbs.shedlock 添加了@SchedulerLock,由 net.javacrumbs.shedlock:shedlock-provider-jdbc-template 支持集成测试使用wiremock 服务器。添加 SchedulerLock 后,测试变得异常缓慢,我看到以下日志:
当我删除 SchedLock 时,一切正常。知道可能是什么问题吗?
示例代码:
环境:schedlock 版本:4.15.1 Spring boot:2.3.7
谢谢
spring - Spring Boot:是否有调度程序锁允许多个 Spring 调度程序任务(基于 cron)在锁定期内多次运行?
我有一个 Spring Boot 应用程序,它有一个注释为 @Scheduled(cron = ....) 的 spring 调度程序,因为可以配置应用程序的多个容器,因此可以同时运行应用程序的多个实例。我想采用像 ShedLock 这样的分布式锁,以便在某个时间点只有一个调度程序实例运行。我尝试了 ShedLock,但即使该实例持有锁,它也不允许执行 spring 调度程序的多次运行。这对我来说不是一个可以接受的选择。那么我有什么选择呢?是否有任何分布式锁库可用于实现我的场景?
谢谢JK
java - 创建一个守护线程,该线程恰好在(可能复制的)Spring Boot 服务的一个实例中运行
我有一个部署在多个实例中的 Spring Boot 服务。我想在其中一个实例中拥有一个连续运行的“守护线程”。如果该实例关闭,线程最终应该(在超时后)在其他实例上变为活动状态。
该服务使用一个通用的 MongoDB 数据库,它原则上可以提供锁定,但我正在寻找能够正确执行此操作的模式或库。
我查看了Shedlock,但它似乎仅适用于持续时间可预测的短期作业,而不是长时间运行的守护线程。
spring-boot - 如何在 Spring Boot 中使用 Shedlock 释放调度程序的锁?
我创建了一个每 30 秒运行一次的调度程序。 @Scheduled(fixedRateString = "${scheduler.time:30000}")
用于此的 Shedlock 已配置为@EnableSchedulerLock(defaultLockAtMostFor = "PT30S")
.
我在 Shedlock 表中有一个条目:
lock_until : 2021-07-20 14:53:26.446
locked_at : 2021-07-20 14:53:24.585
调度程序根本没有运行。
我有几个问题:
锁不应该在 30 秒后释放吗?
运行调度程序和 Sherlock 的时间是否与 30 秒相同,这会导致问题吗?
现在我被卡住了,释放锁的方法是什么?我应该从 shedlock 表中删除条目吗?
谢谢。