问题标签 [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.

0 投票
1 回答
506 浏览

java - 将 Shedlock 与 mongo 一起使用时如何解决此编解码器错误

嗨,我正在尝试将 Shedlock 用于 Spring Boot Mongo。文档说它需要 Mongo JAva 3.7.0。我目前正在使用 Spring spring-boot-starter-parent v 2.0.4,它有一个旧版本的驱动程序,所以升级到版本 2.1.0。

下面是我有地方启动锁的代码:

然后我的代码是:

我得到的错误是:

0 投票
1 回答
39 浏览

spring - 关于 Spring 4xx 版本的调度器

我的应用程序使用的是 spring 4.0.0。我正在尝试在分布式系统中编写调度程序。我的应用程序在多台服务器上运行,我的数据库也在多台服务器上运行。

我正在努力实现:我的调度程序将仅在一台服务器上运行。

我尝试了两种方法:

  1. 分析:制作不同的配置文件并将其部署在任何服务器中。

    但我不希望为不同的服务器提供不同的配置文件。

  2. 谢洛克

    Shedlock 不支持 spring 4xx 版本。

请提出更好的方法

0 投票
1 回答
2831 浏览

java - 使用 Shedlock 配置 Spring Scheduler 时没有 LockProvider 类型的限定 bean

我正在尝试集成 Shedlock 以使我的 Spring Boot 应用程序上的计划作业在多 pod 部署中无缝运行。

主类如下:

为了使用 Shedlock 配置调度程序,添加了以下类:

MyDbDataSource 类如下:

我的调度程序类如下:

启动应用程序时,我收到以下错误:

我无法理解我在这里缺少什么。

0 投票
0 回答
353 浏览

spring - 计划的作业未开始

我一直在尝试在我的 Spring Boot 应用程序上实现 Shedlock,但没有明显的用途,我使用了https://github.com/lukas-krecan/ShedLock上提供的正式指南,请在下面找到我的配置

Maven依赖:

应用程序.java

计划任务:

无论我尝试什么任务都不会首先开始,任何想法

0 投票
1 回答
1247 浏览

spring - 无法为 Spring @Scheduler 编写单元测试

我在当前的 spring 项目中实现了一个带锁的调度程序,如下所示:

现在我想为这个函数编写单元测试。这里我面临的问题是:我无法模拟第一条语句:LockAssert.assertLocked()

0 投票
1 回答
1654 浏览

java - Java Spring shedlock 失败

我有一个 spring-boot 应用程序,它在生产环境中以 2 个实例运行,导致计划任务运行两次。为了避免我正在尝试使用 shedlock,如此处和此处所解释,但它没有影响。我已经在使用 MySql 数据库,我在上面添加了一个shedlock表,如上面两个示例中所述。

我的项目结构如下(部分) -

在此处输入图像描述

在我的application.properties文件中我有这个设置 -

我在AppConfig课堂上添加了这个注释 -

还有这个豆子——

ScheduledManager课堂上我有这个计划任务 -

当我在 2 个实例上本地运行我的应用程序(使用application.properties文件中的 2 个不同端口)时,查看日志我可以看到任务在两个实例上运行,同时shedlock表仍然为空。根据故障排除部分的第二项,我似乎错过了一些配置,但我不知道是什么。

任何帮助将不胜感激。

0 投票
1 回答
560 浏览

sql-server - 使用 shedlock 在预定时间清除 Spring 批处理作业表的旧记录时出现死锁

我遇到了这个具有挑战性的场景,其中事务在执行批量更新查询时被 Microsfoft sql server 锁定。

我看到了这个错误。

事务(进程 ID 293)与另一个进程在锁资源上死锁,并已被选为死锁牺牲品。重新运行事务。; 嵌套异常是 com.microsoft.sqlserver.jdbc.SQLServerException:事务(进程 ID 293)在锁资源上与另一个进程死锁,并已被选为死锁牺牲品。

我的批量更新查询:

如果超过 7 天,我有 7-8 个表需要清除其数据。现在,在较低环境的情况下,由于数据量低,所以它工作正常。在生产中,每个表中的数据多达 300k 到 500k。在删除这么多记录时,执行 spring jdbc 查询的 shedlock 任务最终陷入死锁。相同操作的 API 工作正常,但在不同时间执行,因此不确定计划任务运行时的负载。

Shedlock表数据:

SCHEDULER_LOCK 2020-10-21 00:00:15 2020-10-21 00:00:00 tomcat-406116080-2-521278230

虽然我给出了 lockAtMostFor=5M ,但看起来 lock_until 显示 15 秒,这很奇怪。这可能是原因吗?因为生产数据量需要 1-2 分钟。

任何建议将不胜感激

编辑:

提前致谢

0 投票
2 回答
284 浏览

spring - 无法在 ShedLock 中创建 LockManager bean

我有一个自定义的 ThreadPoolTask​​Scheduler,我想在我在配置中定义的 LockableTaskScheduler 实例中使用它,如下所示:

我以编程方式实例化动态计划,如下所示:

但是我找不到任何公共实现LockConfigurationExtractor来创建一个LockConfigurationExtractorbean。

PS我浏览了源代码和测试用例。但LockConfigurationExtractor似乎在库包之外没有可访问的公共具体实现。

有没有其他方法来定义/获取DefaultLockManagerbean?


编辑

实际上,我的主要目标根本不是创建 LockableTaskScheduler。我只想以某种方式安排“可锁定”可运行:

这样当 runnable 被触发时,它就不能在另一个节点上同时运行。(注:业务逻辑中的动态/程序化调度部分是无法避免的ATM)

0 投票
1 回答
449 浏览

shedlock - ShedLock - 不执行

我正在使用 shedlock 库 4.20.0。

调度程序的工作是,

它显示 @SchedulerLock 已弃用。

还有春靴课,

当我执行 spring boot 类时,它会触发 shedlock 并在数据库表中创建一条记录,但在日志中我不断得到如下信息,

任何想法将不胜感激?

0 投票
1 回答
175 浏览

spring - 如何在 Spring 集成中使用 ShedLock?

我正在结合 Spring Batch 和 Spring Integration,我将 poller 与玉米一起使用:

我知道 Spring Integration JDBC 提供JDBCLockRepository但我想知道如何使用 ShedLock。