fix(idgen): retry snowflake generation and error on negative ID

NextUint64ID now retries up to 3 times when Int64() is negative, then
returns an error instead of 0 or Fatalf. All call sites propagate the
error to avoid GORM omitting zero-value primary keys.
This commit is contained in:
ryan
2026-06-17 13:08:00 +08:00
parent a27113feb2
commit 92dc6a59c0
11 changed files with 145 additions and 44 deletions
+4 -2
View File
@@ -387,8 +387,10 @@ func TestRetryTaskNonExistent(t *testing.T) {
}
func TestGenerateTaskID(t *testing.T) {
id1 := generateTaskID("test_type", "manual")
id2 := generateTaskID("test_type", "manual")
id1, err := generateTaskID("test_type", "manual")
require.NoError(t, err)
id2, err := generateTaskID("test_type", "manual")
require.NoError(t, err)
// 两个 ID 应不同(包含 Snowflake ID)
assert.NotEqual(t, id1, id2)