fix(processing): 收紧消息生命周期与投递约束
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
package com.gzzn.omms.msgexchange.processing
|
||||
|
||||
import jakarta.inject.Singleton
|
||||
import java.util.concurrent.locks.ReentrantLock
|
||||
import kotlin.concurrent.withLock
|
||||
|
||||
/**
|
||||
* 串行化“终态回填”与“人工重放”,避免旧回填任务在消息重新入队后写入信箱标记。
|
||||
* 生产只允许单活动实例;该锁处理同一实例内的 job 线程和管理请求并发。
|
||||
*/
|
||||
@Singleton
|
||||
class MessageLifecycleGate {
|
||||
private val lock = ReentrantLock()
|
||||
|
||||
fun <T> exclusive(block: () -> T): T = lock.withLock(block)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user