You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于DynamoDB实现Shedlock的表结构与跨库使用的咨询

关于Shedlock多实例Cron重复执行问题的解答

一、DynamoDB锁表的表名与列信息

Shedlock的DynamoDB锁表默认表名为shedlock,也可通过配置自定义表名。表的核心结构如下:

  • 分区键:_id(字符串类型),对应锁的名称(即@SchedulerLock注解中指定的name值)
  • 必选属性列:
    • lock_until:数字类型(存储毫秒级时间戳,表示锁失效时间)
    • locked_at:数字类型(存储毫秒级时间戳,表示锁被获取的时间)
    • locked_by:字符串类型(标识持有锁的实例ID或名称)

如果手动创建表,需确保分区键设置为_id;用代码创建可调用DynamoDBUtils.createLockTable方法,示例代码如下:

AmazonDynamoDB amazonDynamoDB = AmazonDynamoDBClientBuilder.defaultClient();
DynamoDBUtils.createLockTable(amazonDynamoDB, "shedlock", 10L);

第三个参数为表的读写容量单位,可根据实际场景调整。

二、主数据库为Oracle时,能否将Shedlock部署在DynamoDB中

完全可以。Shedlock的锁存储与业务主数据库相互独立,支持多种锁存储实现(关系型数据库、NoSQL、Redis等)。只要在项目中配置DynamoDBLockProvider并正确连接到DynamoDB实例,就能实现多实例Cron任务的分布式锁控制,与主库Oracle无冲突。

内容的提问来源于stack exchange,提问作者CodeFreak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 23:18:12