Shedlock动态锁名称模板插值:如何将方法参数作为锁名部分
如何将方法参数作为锁名称的一部分
要在调度锁名称中嵌入方法参数,直接在@SchedulerLock注解的name属性中使用SpEL表达式(#{参数名})引用方法参数即可,以此动态生成包含参数的锁名称。
示例代码
@SchedulerLock(name = "my-job-#{tenantId}-#{date}") public void job(UUID tenantId, LocalDate date) { // 执行任务逻辑 }
关键说明
- SpEL表达式
#{tenantId}和#{date}会在运行时被替换为对应方法参数的实际值,生成如my-job-123e4567-e89b-12d3-a456-426614174000-2024-05-20的唯一锁名 - 这种方式能实现锁的维度隔离,比如按租户、日期区分任务,避免不同参数的任务之间出现锁冲突
内容的提问来源于stack exchange,提问作者Hadi Mansouri
相关产品推荐
相关产品推荐

