Compare commits
9
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e4885803df | ||
|
|
e5175a0504 | ||
|
|
489dacca49 | ||
|
|
5eacfefb6c | ||
|
|
63d30d8f25 | ||
|
|
fff5b707ac | ||
|
|
d07c67327e | ||
|
|
9c76772969 | ||
|
|
a83b89b08a |
+3
-2
@@ -25,8 +25,9 @@ LOOKUP_BATCH = 10000
|
|||||||
# 单锁无环,写事务之间从结构上不可能死锁。1768851058 = "inkr" 的 ASCII 整数表示。
|
# 单锁无环,写事务之间从结构上不可能死锁。1768851058 = "inkr" 的 ASCII 整数表示。
|
||||||
DB_WRITE_LOCK_KEY = 1768851058
|
DB_WRITE_LOCK_KEY = 1768851058
|
||||||
LOCK_TIMEOUT = "15s" # 等锁超时 → LockNotAvailable → 交给重试兜底
|
LOCK_TIMEOUT = "15s" # 等锁超时 → LockNotAvailable → 交给重试兜底
|
||||||
WRITE_RETRIES = 3 # 死锁/等锁超时的整事务重试次数
|
WRITE_RETRIES = 5 # 死锁/等锁超时的整事务重试次数(外部写者如 17track
|
||||||
WRITE_RETRY_BACKOFF = [1, 3, 7] # 重试退避(秒)
|
# 物流回写不走 advisory 锁,冲突窗口可达分钟级,重试需够深)
|
||||||
|
WRITE_RETRY_BACKOFF = [1, 3, 7, 15, 30] # 重试退避(秒;末位预留,最后一次失败直接抛出)
|
||||||
WRITE_RETRYABLE_ERRORS = (pg_errors.DeadlockDetected, pg_errors.LockNotAvailable)
|
WRITE_RETRYABLE_ERRORS = (pg_errors.DeadlockDetected, pg_errors.LockNotAvailable)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -35,6 +35,8 @@ RIIN_GOODS_STATUS_MAP: dict[str, str] = {
|
|||||||
"CANCELLED": "已取消", "REFUNDING": "退款中",
|
"CANCELLED": "已取消", "REFUNDING": "退款中",
|
||||||
# 商品级状态复用平台状态枚举,COMPLETE/PAUSE 缺失曾导致 1/3 商品行 status 为 NULL
|
# 商品级状态复用平台状态枚举,COMPLETE/PAUSE 缺失曾导致 1/3 商品行 status 为 NULL
|
||||||
"COMPLETE": "已完成", "PAUSE": "暂停",
|
"COMPLETE": "已完成", "PAUSE": "暂停",
|
||||||
|
# CLOSE 同为商品终态(Goods 约束无"已关闭",取"已取消");UNKNOWN 保留 NULL 并由告警暴露
|
||||||
|
"CLOSE": "已取消",
|
||||||
}
|
}
|
||||||
|
|
||||||
RIIN_PLATFORM_STATUS_MAP: dict[str, str] = {
|
RIIN_PLATFORM_STATUS_MAP: dict[str, str] = {
|
||||||
|
|||||||
@@ -53,6 +53,7 @@ class RiinGoodsStatusTest(unittest.TestCase):
|
|||||||
"REFUNDING": "退款中",
|
"REFUNDING": "退款中",
|
||||||
"COMPLETE": "已完成", # 本次补齐(曾导致 NULL)
|
"COMPLETE": "已完成", # 本次补齐(曾导致 NULL)
|
||||||
"PAUSE": "暂停", # 本次补齐(曾导致 NULL)
|
"PAUSE": "暂停", # 本次补齐(曾导致 NULL)
|
||||||
|
"CLOSE": "已取消", # 回填重拉时告警发现的新枚举
|
||||||
}
|
}
|
||||||
for raw, want in cases.items():
|
for raw, want in cases.items():
|
||||||
with self.subTest(raw=raw):
|
with self.subTest(raw=raw):
|
||||||
|
|||||||
Reference in New Issue
Block a user