-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_results.txt
More file actions
247 lines (247 loc) · 27 KB
/
Copy pathtest_results.txt
File metadata and controls
247 lines (247 loc) · 27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
=== RUN TestPanicRecovery_PanicsRecovered
--- PASS: TestPanicRecovery_PanicsRecovered (0.00s)
=== RUN TestPanicRecovery_NoPanicNoError
--- PASS: TestPanicRecovery_NoPanicNoError (0.00s)
=== RUN TestOOM_SimulatedAllocationFailure
--- PASS: TestOOM_SimulatedAllocationFailure (0.00s)
=== RUN TestOOM_NormalPathNoError
--- PASS: TestOOM_NormalPathNoError (0.00s)
=== RUN TestDeadlockDetection_Timeout
--- PASS: TestDeadlockDetection_Timeout (0.03s)
=== RUN TestDeadlockDetection_NormalPath
--- PASS: TestDeadlockDetection_NormalPath (0.05s)
=== RUN TestResourceExhaustion_Simulated
--- PASS: TestResourceExhaustion_Simulated (0.00s)
=== RUN TestResourceExhaustion_NormalPath
--- PASS: TestResourceExhaustion_NormalPath (0.00s)
=== RUN TestWALAppend_CreatesFile
--- PASS: TestWALAppend_CreatesFile (0.00s)
=== RUN TestWALAppend_WritesJSONLine
--- PASS: TestWALAppend_WritesJSONLine (0.00s)
=== RUN TestWALAppend_MultipleJobs
--- PASS: TestWALAppend_MultipleJobs (0.03s)
=== RUN TestWALRecovery_UnfinishedJobsLoaded
--- PASS: TestWALRecovery_UnfinishedJobsLoaded (0.01s)
=== RUN TestWALRecovery_EmptyWAL
--- PASS: TestWALRecovery_EmptyWAL (0.00s)
=== RUN TestWALRecovery_NonexistentFile
--- PASS: TestWALRecovery_NonexistentFile (0.00s)
=== RUN TestWALAppend_Concurrent
--- PASS: TestWALAppend_Concurrent (0.06s)
=== RUN TestWALAppend_ConcurrentWithCheckpoint
2026/07/06 00:20:56 💾 Checkpoint created, WAL compacted.
2026/07/06 00:20:56 💾 Checkpoint created, WAL compacted.
2026/07/06 00:20:56 💾 Checkpoint created, WAL compacted.
2026/07/06 00:20:56 💾 Checkpoint created, WAL compacted.
2026/07/06 00:20:56 💾 Checkpoint created, WAL compacted.
2026/07/06 00:20:56 💾 Checkpoint created, WAL compacted.
2026/07/06 00:20:56 💾 Checkpoint created, WAL compacted.
2026/07/06 00:20:56 💾 Checkpoint created, WAL compacted.
2026/07/06 00:20:56 💾 Checkpoint created, WAL compacted.
2026/07/06 00:20:56 💾 Checkpoint created, WAL compacted.
--- PASS: TestWALAppend_ConcurrentWithCheckpoint (0.07s)
=== RUN TestCheckpoint_CreatesCompactedFile
2026/07/06 00:20:56 💾 Checkpoint created, WAL compacted.
--- PASS: TestCheckpoint_CreatesCompactedFile (0.01s)
=== RUN TestCheckpoint_DoesNotLoseActiveJobs
2026/07/06 00:20:56 💾 Checkpoint created, WAL compacted.
--- PASS: TestCheckpoint_DoesNotLoseActiveJobs (0.01s)
=== RUN TestCheckpoint_Idempotent
2026/07/06 00:20:56 💾 Checkpoint created, WAL compacted.
2026/07/06 00:20:56 💾 Checkpoint created, WAL compacted.
2026/07/06 00:20:56 💾 Checkpoint created, WAL compacted.
--- PASS: TestCheckpoint_Idempotent (0.01s)
=== RUN TestWALRecovery_CorruptedLine
2026/07/06 00:20:56 ⚠️ Failed to parse job from WAL: invalid character 'o' in literal null (expecting 'u')
--- PASS: TestWALRecovery_CorruptedLine (0.00s)
=== RUN TestWALAppend_DifferentStatuses
--- PASS: TestWALAppend_DifferentStatuses (0.00s)
=== RUN TestCheckpoint_MemoryConsistency
2026/07/06 00:20:56 💾 Checkpoint created, WAL compacted.
2026/07/06 00:20:56 💾 Checkpoint created, WAL compacted.
--- PASS: TestCheckpoint_MemoryConsistency (0.02s)
=== RUN TestWorkerPool_ScalesUp
2026/07/06 00:20:56 📥 Job queued: {"id":0,"type":"email","payload":{"to":"user0@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":1,"type":"sms","payload":{"to":"user1@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":2,"type":"report","payload":{"to":"user2@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":3,"type":"email","payload":{"to":"user3@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":4,"type":"sms","payload":{"to":"user4@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":5,"type":"report","payload":{"to":"user5@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":6,"type":"email","payload":{"to":"user6@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":7,"type":"sms","payload":{"to":"user7@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":8,"type":"report","payload":{"to":"user8@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":9,"type":"email","payload":{"to":"user9@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":10,"type":"sms","payload":{"to":"user10@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":11,"type":"report","payload":{"to":"user11@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":12,"type":"email","payload":{"to":"user12@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":13,"type":"sms","payload":{"to":"user13@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":14,"type":"report","payload":{"to":"user14@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":15,"type":"email","payload":{"to":"user15@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":16,"type":"sms","payload":{"to":"user16@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":17,"type":"report","payload":{"to":"user17@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":18,"type":"email","payload":{"to":"user18@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":19,"type":"sms","payload":{"to":"user19@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":20,"type":"report","payload":{"to":"user20@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":21,"type":"email","payload":{"to":"user21@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":22,"type":"sms","payload":{"to":"user22@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":23,"type":"report","payload":{"to":"user23@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":24,"type":"email","payload":{"to":"user24@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":25,"type":"sms","payload":{"to":"user25@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":26,"type":"report","payload":{"to":"user26@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":27,"type":"email","payload":{"to":"user27@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":28,"type":"sms","payload":{"to":"user28@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":29,"type":"report","payload":{"to":"user29@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":30,"type":"email","payload":{"to":"user30@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":31,"type":"sms","payload":{"to":"user31@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":32,"type":"report","payload":{"to":"user32@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":33,"type":"email","payload":{"to":"user33@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":34,"type":"sms","payload":{"to":"user34@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":35,"type":"report","payload":{"to":"user35@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":36,"type":"email","payload":{"to":"user36@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":37,"type":"sms","payload":{"to":"user37@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":38,"type":"report","payload":{"to":"user38@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":39,"type":"email","payload":{"to":"user39@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":40,"type":"sms","payload":{"to":"user40@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":41,"type":"report","payload":{"to":"user41@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":42,"type":"email","payload":{"to":"user42@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":43,"type":"sms","payload":{"to":"user43@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":44,"type":"report","payload":{"to":"user44@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":45,"type":"email","payload":{"to":"user45@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":46,"type":"sms","payload":{"to":"user46@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":47,"type":"report","payload":{"to":"user47@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":48,"type":"email","payload":{"to":"user48@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 📥 Job queued: {"id":49,"type":"sms","payload":{"to":"user49@example.com"},"status":"PENDING","attempts":0,"max_retry":3}
2026/07/06 00:20:56 👷 Worker-4 started job: {"id":0,"type":"email","payload":{"to":"user0@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:20:56 👷 Worker-2 started job: {"id":1,"type":"sms","payload":{"to":"user1@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:20:56 👷 Worker-1 started job: {"id":3,"type":"email","payload":{"to":"user3@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:20:56 👷 Worker-3 started job: {"id":2,"type":"report","payload":{"to":"user2@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:20:56 👷 Worker-9 started job: {"id":4,"type":"sms","payload":{"to":"user4@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:20:56 👷 Worker-8 started job: {"id":5,"type":"report","payload":{"to":"user5@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:20:56 👷 Worker-7 started job: {"id":6,"type":"email","payload":{"to":"user6@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:20:56 👷 Worker-10 started job: {"id":7,"type":"sms","payload":{"to":"user7@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:20:56 👷 Worker-6 started job: {"id":8,"type":"report","payload":{"to":"user8@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:20:56 👷 Worker-5 started job: {"id":11,"type":"report","payload":{"to":"user11@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:20:57 ✅ Worker-9 completed job: {"id":4,"type":"sms","payload":{"to":"user4@example.com"},"status":"SUCCESS","attempts":1,"max_retry":3}
2026/07/06 00:20:57 ✅ Worker-8 completed job: {"id":5,"type":"report","payload":{"to":"user5@example.com"},"status":"SUCCESS","attempts":1,"max_retry":3}
2026/07/06 00:20:57 👷 Worker-8 started job: {"id":10,"type":"sms","payload":{"to":"user10@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:20:57 👷 Worker-9 started job: {"id":9,"type":"email","payload":{"to":"user9@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:20:57 ✅ Worker-7 completed job: {"id":6,"type":"email","payload":{"to":"user6@example.com"},"status":"SUCCESS","attempts":1,"max_retry":3}
2026/07/06 00:20:57 👷 Worker-7 started job: {"id":24,"type":"email","payload":{"to":"user24@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:20:57 ⏳ Worker-6 retrying job 8 in 2 seconds
2026/07/06 00:20:58 ✅ Worker-4 completed job: {"id":0,"type":"email","payload":{"to":"user0@example.com"},"status":"SUCCESS","attempts":1,"max_retry":3}
2026/07/06 00:20:58 ✅ Worker-2 completed job: {"id":1,"type":"sms","payload":{"to":"user1@example.com"},"status":"SUCCESS","attempts":1,"max_retry":3}
2026/07/06 00:20:58 ✅ Worker-1 completed job: {"id":3,"type":"email","payload":{"to":"user3@example.com"},"status":"SUCCESS","attempts":1,"max_retry":3}
2026/07/06 00:20:58 ⏳ Worker-3 retrying job 2 in 2 seconds
2026/07/06 00:20:58 👷 Worker-4 started job: {"id":12,"type":"email","payload":{"to":"user12@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:20:58 👷 Worker-2 started job: {"id":13,"type":"sms","payload":{"to":"user13@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:20:58 👷 Worker-1 started job: {"id":14,"type":"report","payload":{"to":"user14@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:20:58 ✅ Worker-10 completed job: {"id":7,"type":"sms","payload":{"to":"user7@example.com"},"status":"SUCCESS","attempts":1,"max_retry":3}
2026/07/06 00:20:58 ✅ Worker-5 completed job: {"id":11,"type":"report","payload":{"to":"user11@example.com"},"status":"SUCCESS","attempts":1,"max_retry":3}
2026/07/06 00:20:58 👷 Worker-10 started job: {"id":15,"type":"email","payload":{"to":"user15@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:20:58 👷 Worker-5 started job: {"id":16,"type":"sms","payload":{"to":"user16@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:20:59 ⏳ Worker-8 retrying job 10 in 2 seconds
2026/07/06 00:20:59 ⚠️ Submit on closed channel (job 8): send on closed channel
2026/07/06 00:20:59 ⏳ Worker-9 retrying job 9 in 2 seconds
2026/07/06 00:20:59 ✅ Worker-7 completed job: {"id":24,"type":"email","payload":{"to":"user24@example.com"},"status":"SUCCESS","attempts":1,"max_retry":3}
2026/07/06 00:20:59 👷 Worker-7 started job: {"id":18,"type":"email","payload":{"to":"user18@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:20:59 👷 Worker-6 started job: {"id":17,"type":"report","payload":{"to":"user17@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:20:59 ✅ Worker-4 completed job: {"id":12,"type":"email","payload":{"to":"user12@example.com"},"status":"SUCCESS","attempts":1,"max_retry":3}
2026/07/06 00:20:59 👷 Worker-4 started job: {"id":19,"type":"sms","payload":{"to":"user19@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:20:59 ✅ Worker-2 completed job: {"id":13,"type":"sms","payload":{"to":"user13@example.com"},"status":"SUCCESS","attempts":1,"max_retry":3}
2026/07/06 00:20:59 ✅ Worker-1 completed job: {"id":14,"type":"report","payload":{"to":"user14@example.com"},"status":"SUCCESS","attempts":1,"max_retry":3}
2026/07/06 00:20:59 👷 Worker-1 started job: {"id":21,"type":"email","payload":{"to":"user21@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:20:59 👷 Worker-2 started job: {"id":20,"type":"report","payload":{"to":"user20@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:20:59 ✅ Worker-5 completed job: {"id":16,"type":"sms","payload":{"to":"user16@example.com"},"status":"SUCCESS","attempts":1,"max_retry":3}
2026/07/06 00:20:59 👷 Worker-5 started job: {"id":22,"type":"sms","payload":{"to":"user22@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:21:00 ⚠️ Submit on closed channel (job 2): send on closed channel
2026/07/06 00:21:00 👷 Worker-3 started job: {"id":23,"type":"report","payload":{"to":"user23@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:21:00 ⏳ Worker-6 retrying job 17 in 2 seconds
2026/07/06 00:21:00 ✅ Worker-7 completed job: {"id":18,"type":"email","payload":{"to":"user18@example.com"},"status":"SUCCESS","attempts":1,"max_retry":3}
2026/07/06 00:21:00 👷 Worker-7 started job: {"id":31,"type":"sms","payload":{"to":"user31@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:21:00 ⏳ Worker-10 retrying job 15 in 2 seconds
2026/07/06 00:21:00 ✅ Worker-1 completed job: {"id":21,"type":"email","payload":{"to":"user21@example.com"},"status":"SUCCESS","attempts":1,"max_retry":3}
2026/07/06 00:21:00 👷 Worker-1 started job: {"id":25,"type":"sms","payload":{"to":"user25@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:21:01 ⚠️ Submit on closed channel (job 9): send on closed channel
2026/07/06 00:21:01 ⚠️ Submit on closed channel (job 10): send on closed channel
2026/07/06 00:21:01 ⏳ Worker-3 retrying job 23 in 2 seconds
2026/07/06 00:21:01 👷 Worker-9 started job: {"id":26,"type":"report","payload":{"to":"user26@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:21:01 👷 Worker-8 started job: {"id":27,"type":"email","payload":{"to":"user27@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:21:01 ✅ Worker-4 completed job: {"id":19,"type":"sms","payload":{"to":"user19@example.com"},"status":"SUCCESS","attempts":1,"max_retry":3}
2026/07/06 00:21:01 👷 Worker-4 started job: {"id":28,"type":"sms","payload":{"to":"user28@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:21:01 ✅ Worker-2 completed job: {"id":20,"type":"report","payload":{"to":"user20@example.com"},"status":"SUCCESS","attempts":1,"max_retry":3}
2026/07/06 00:21:01 👷 Worker-2 started job: {"id":29,"type":"report","payload":{"to":"user29@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:21:01 ⏳ Worker-7 retrying job 31 in 2 seconds
2026/07/06 00:21:01 ✅ Worker-5 completed job: {"id":22,"type":"sms","payload":{"to":"user22@example.com"},"status":"SUCCESS","attempts":1,"max_retry":3}
2026/07/06 00:21:01 👷 Worker-5 started job: {"id":30,"type":"email","payload":{"to":"user30@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:21:02 ⚠️ Submit on closed channel (job 17): send on closed channel
2026/07/06 00:21:02 ✅ Worker-8 completed job: {"id":27,"type":"email","payload":{"to":"user27@example.com"},"status":"SUCCESS","attempts":1,"max_retry":3}
2026/07/06 00:21:02 ⚠️ Submit on closed channel (job 15): send on closed channel
2026/07/06 00:21:02 👷 Worker-6 started job: {"id":35,"type":"report","payload":{"to":"user35@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:21:02 👷 Worker-8 started job: {"id":32,"type":"report","payload":{"to":"user32@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:21:02 ✅ Worker-2 completed job: {"id":29,"type":"report","payload":{"to":"user29@example.com"},"status":"SUCCESS","attempts":1,"max_retry":3}
2026/07/06 00:21:02 👷 Worker-2 started job: {"id":34,"type":"sms","payload":{"to":"user34@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:21:02 ⏳ Worker-4 retrying job 28 in 2 seconds
2026/07/06 00:21:02 ✅ Worker-1 completed job: {"id":25,"type":"sms","payload":{"to":"user25@example.com"},"status":"SUCCESS","attempts":1,"max_retry":3}
2026/07/06 00:21:02 👷 Worker-10 started job: {"id":33,"type":"email","payload":{"to":"user33@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:21:02 ✅ Worker-5 completed job: {"id":30,"type":"email","payload":{"to":"user30@example.com"},"status":"SUCCESS","attempts":1,"max_retry":3}
2026/07/06 00:21:02 👷 Worker-1 started job: {"id":37,"type":"sms","payload":{"to":"user37@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:21:02 👷 Worker-5 started job: {"id":36,"type":"email","payload":{"to":"user36@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:21:03 ⚠️ Submit on closed channel (job 23): send on closed channel
2026/07/06 00:21:03 ⏳ Worker-9 retrying job 26 in 2 seconds
2026/07/06 00:21:03 👷 Worker-3 started job: {"id":38,"type":"report","payload":{"to":"user38@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:21:03 ⚠️ Submit on closed channel (job 31): send on closed channel
2026/07/06 00:21:03 👷 Worker-7 started job: {"id":39,"type":"email","payload":{"to":"user39@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:21:03 ✅ Worker-2 completed job: {"id":34,"type":"sms","payload":{"to":"user34@example.com"},"status":"SUCCESS","attempts":1,"max_retry":3}
2026/07/06 00:21:03 ✅ Worker-1 completed job: {"id":37,"type":"sms","payload":{"to":"user37@example.com"},"status":"SUCCESS","attempts":1,"max_retry":3}
2026/07/06 00:21:03 👷 Worker-1 started job: {"id":49,"type":"sms","payload":{"to":"user49@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:21:03 ⏳ Worker-10 retrying job 33 in 2 seconds
2026/07/06 00:21:03 👷 Worker-2 started job: {"id":40,"type":"sms","payload":{"to":"user40@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:21:03 ⏳ Worker-5 retrying job 36 in 2 seconds
2026/07/06 00:21:04 ✅ Worker-6 completed job: {"id":35,"type":"report","payload":{"to":"user35@example.com"},"status":"SUCCESS","attempts":1,"max_retry":3}
2026/07/06 00:21:04 👷 Worker-6 started job: {"id":41,"type":"report","payload":{"to":"user41@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:21:04 ⚠️ Submit on closed channel (job 28): send on closed channel
2026/07/06 00:21:04 👷 Worker-4 started job: {"id":42,"type":"email","payload":{"to":"user42@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:21:04 ✅ Worker-8 completed job: {"id":32,"type":"report","payload":{"to":"user32@example.com"},"status":"SUCCESS","attempts":1,"max_retry":3}
2026/07/06 00:21:04 ✅ Worker-7 completed job: {"id":39,"type":"email","payload":{"to":"user39@example.com"},"status":"SUCCESS","attempts":1,"max_retry":3}
2026/07/06 00:21:04 ✅ Worker-3 completed job: {"id":38,"type":"report","payload":{"to":"user38@example.com"},"status":"SUCCESS","attempts":1,"max_retry":3}
2026/07/06 00:21:04 👷 Worker-8 started job: {"id":43,"type":"sms","payload":{"to":"user43@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:21:04 👷 Worker-7 started job: {"id":44,"type":"report","payload":{"to":"user44@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:21:04 👷 Worker-3 started job: {"id":45,"type":"email","payload":{"to":"user45@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:21:04 ✅ Worker-2 completed job: {"id":40,"type":"sms","payload":{"to":"user40@example.com"},"status":"SUCCESS","attempts":1,"max_retry":3}
2026/07/06 00:21:04 👷 Worker-2 started job: {"id":46,"type":"sms","payload":{"to":"user46@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:21:05 ⚠️ Submit on closed channel (job 26): send on closed channel
2026/07/06 00:21:05 👷 Worker-9 started job: {"id":47,"type":"report","payload":{"to":"user47@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:21:05 ⚠️ Submit on closed channel (job 33): send on closed channel
2026/07/06 00:21:05 ⚠️ Submit on closed channel (job 36): send on closed channel
2026/07/06 00:21:05 👷 Worker-10 started job: {"id":48,"type":"email","payload":{"to":"user48@example.com"},"status":"RUNNING","attempts":1,"max_retry":3}
2026/07/06 00:21:05 ✅ Worker-1 completed job: {"id":49,"type":"sms","payload":{"to":"user49@example.com"},"status":"SUCCESS","attempts":1,"max_retry":3}
2026/07/06 00:21:05 ✅ Worker-7 completed job: {"id":44,"type":"report","payload":{"to":"user44@example.com"},"status":"SUCCESS","attempts":1,"max_retry":3}
2026/07/06 00:21:05 ⏳ Worker-8 retrying job 43 in 2 seconds
2026/07/06 00:21:06 ⏳ Worker-9 retrying job 47 in 2 seconds
2026/07/06 00:21:06 ✅ Worker-4 completed job: {"id":42,"type":"email","payload":{"to":"user42@example.com"},"status":"SUCCESS","attempts":1,"max_retry":3}
2026/07/06 00:21:06 ⏳ Worker-6 retrying job 41 in 2 seconds
2026/07/06 00:21:06 ✅ Worker-3 completed job: {"id":45,"type":"email","payload":{"to":"user45@example.com"},"status":"SUCCESS","attempts":1,"max_retry":3}
2026/07/06 00:21:06 ✅ Worker-10 completed job: {"id":48,"type":"email","payload":{"to":"user48@example.com"},"status":"SUCCESS","attempts":1,"max_retry":3}
2026/07/06 00:21:06 ✅ Worker-2 completed job: {"id":46,"type":"sms","payload":{"to":"user46@example.com"},"status":"SUCCESS","attempts":1,"max_retry":3}
2026/07/06 00:21:07 ⚠️ Submit on closed channel (job 43): send on closed channel
2026/07/06 00:21:08 ⚠️ Submit on closed channel (job 47): send on closed channel
--- PASS: TestWorkerPool_ScalesUp (12.01s)
2026/07/06 00:21:08 ⚠️ Submit on closed channel (job 41): send on closed channel
=== RUN TestWorkerPool_ScalesDown
2026/07/06 00:21:08 🛑 Worker-10 scaling down
2026/07/06 00:21:08 🛑 Worker-6 scaling down
2026/07/06 00:21:08 🛑 Worker-7 scaling down
2026/07/06 00:21:08 🛑 Worker-5 scaling down
2026/07/06 00:21:08 🛑 Worker-1 scaling down
2026/07/06 00:21:08 🛑 Worker-2 scaling down
2026/07/06 00:21:08 🛑 Worker-4 scaling down
--- PASS: TestWorkerPool_ScalesDown (0.00s)
=== RUN TestWorkerPool_ScalesUpAndDown
2026/07/06 00:21:08 🛑 Worker-6 scaling down
2026/07/06 00:21:08 🛑 Worker-5 scaling down
2026/07/06 00:21:08 🛑 Worker-11 scaling down
2026/07/06 00:21:08 🛑 Worker-9 scaling down
2026/07/06 00:21:08 🛑 Worker-7 scaling down
--- PASS: TestWorkerPool_ScalesUpAndDown (0.00s)
PASS
ok go-job-simulator 13.117s