6
6
7
7
from yatq .enums import RetryPolicy , TaskState
8
8
from yatq .queue import Queue
9
+ from yatq .worker .factory .simple import SimpleJobFactory
9
10
from yatq .worker .job .simple import SimpleJob
10
11
from yatq .worker .runner import build_worker
11
12
from yatq .worker .worker_settings import WorkerSettings
@@ -19,15 +20,13 @@ class Job(SimpleJob):
19
20
async def run (self , ** kwargs ) -> Any :
20
21
event .set ()
21
22
22
- class Settings (WorkerSettings ):
23
- @classmethod
24
- async def redis_connection (cls ):
25
- return redis_connection
26
-
27
- queue_namespace = task_queue .namespace
28
- factory_kwargs = {"handlers" : {"job" : Job }}
29
-
30
- worker = build_worker (redis_connection , Settings , [task_queue .name ])
23
+ worker = build_worker (
24
+ redis_connection ,
25
+ SimpleJobFactory ,
26
+ {"handlers" : {"job" : Job }},
27
+ [task_queue .name ],
28
+ queue_namespace = task_queue .namespace ,
29
+ )
31
30
32
31
run_coro = worker .run ()
33
32
run_task = asyncio .create_task (run_coro )
@@ -56,14 +55,12 @@ class Job(SimpleJob):
56
55
async def run (self , ** kwargs ) -> Any :
57
56
event .set ()
58
57
59
- class Settings (WorkerSettings ):
60
- @classmethod
61
- async def redis_connection (cls ):
62
- return redis_connection
63
-
64
- factory_kwargs = {"handlers" : {"job" : Job }}
65
-
66
- worker = build_worker (redis_connection , Settings , [task_queue .name ])
58
+ worker = build_worker (
59
+ redis_connection ,
60
+ SimpleJobFactory ,
61
+ {"handlers" : {"job" : Job }},
62
+ [task_queue .name ],
63
+ )
67
64
68
65
run_coro = worker .run ()
69
66
run_task = asyncio .create_task (run_coro )
@@ -89,15 +86,13 @@ class Job(SimpleJob):
89
86
async def run (self , ** kwargs ) -> Any :
90
87
event .set ()
91
88
92
- class Settings (WorkerSettings ):
93
- @classmethod
94
- async def redis_connection (cls ):
95
- return redis_connection
96
-
97
- queue_namespace = task_queue .namespace
98
- factory_kwargs = {"handlers" : {"job" : Job }}
99
-
100
- worker = build_worker (redis_connection , Settings , [task_queue .name ])
89
+ worker = build_worker (
90
+ redis_connection ,
91
+ SimpleJobFactory ,
92
+ {"handlers" : {"job" : Job }},
93
+ [task_queue .name ],
94
+ queue_namespace = task_queue .namespace ,
95
+ )
101
96
102
97
run_coro = worker .run ()
103
98
run_task = asyncio .create_task (run_coro )
@@ -122,15 +117,14 @@ class Job(SimpleJob):
122
117
async def run (self , ** kwargs ) -> Any :
123
118
pass
124
119
125
- class Settings (WorkerSettings ):
126
- @classmethod
127
- async def redis_connection (cls ):
128
- return redis_connection
129
-
130
- queue_namespace = task_queue .namespace
131
- factory_kwargs = {"handlers" : {"job" : Job }}
132
-
133
- worker = build_worker (redis_connection , Settings , [task_queue .name ], max_jobs = 1 )
120
+ worker = build_worker (
121
+ redis_connection ,
122
+ SimpleJobFactory ,
123
+ {"handlers" : {"job" : Job }},
124
+ [task_queue .name ],
125
+ max_jobs = 1 ,
126
+ queue_namespace = task_queue .namespace ,
127
+ )
134
128
135
129
scheduled_task_1 = await task_queue .add_task ({"name" : "job" , "kwargs" : {}})
136
130
scheduled_task_2 = await task_queue .add_task ({"name" : "job" , "kwargs" : {}})
@@ -157,15 +151,13 @@ async def redis_connection(cls):
157
151
158
152
@pytest .mark .asyncio
159
153
async def test_worker_job_creation_failed (redis_connection , task_queue : Queue ):
160
- class Settings (WorkerSettings ):
161
- @classmethod
162
- async def redis_connection (cls ):
163
- return redis_connection
164
-
165
- queue_namespace = task_queue .namespace
166
- factory_kwargs = {"handlers" : {}}
167
-
168
- worker = build_worker (redis_connection , Settings , [task_queue .name ])
154
+ worker = build_worker (
155
+ redis_connection ,
156
+ SimpleJobFactory ,
157
+ {"handlers" : {}},
158
+ [task_queue .name ],
159
+ queue_namespace = task_queue .namespace ,
160
+ )
169
161
170
162
run_coro = worker .run ()
171
163
run_task = asyncio .create_task (run_coro )
@@ -194,15 +186,13 @@ async def process(self, required_arg) -> None:
194
186
async def run (self , ** kwargs ) -> Any :
195
187
pass
196
188
197
- class Settings (WorkerSettings ):
198
- @classmethod
199
- async def redis_connection (cls ):
200
- return redis_connection
201
-
202
- queue_namespace = task_queue .namespace
203
- factory_kwargs = {"handlers" : {"job" : Job }}
204
-
205
- worker = build_worker (redis_connection , Settings , [task_queue .name ])
189
+ worker = build_worker (
190
+ redis_connection ,
191
+ SimpleJobFactory ,
192
+ {"handlers" : {"job" : Job }},
193
+ [task_queue .name ],
194
+ queue_namespace = task_queue .namespace ,
195
+ )
206
196
207
197
run_coro = worker .run ()
208
198
run_task = asyncio .create_task (run_coro )
@@ -226,15 +216,13 @@ class Job(SimpleJob):
226
216
async def run (self , ** kwargs ) -> Any :
227
217
raise ValueError
228
218
229
- class Settings (WorkerSettings ):
230
- @classmethod
231
- async def redis_connection (cls ):
232
- return redis_connection
233
-
234
- queue_namespace = task_queue .namespace
235
- factory_kwargs = {"handlers" : {"job" : Job }}
236
-
237
- worker = build_worker (redis_connection , Settings , [task_queue .name ])
219
+ worker = build_worker (
220
+ redis_connection ,
221
+ SimpleJobFactory ,
222
+ {"handlers" : {"job" : Job }},
223
+ [task_queue .name ],
224
+ queue_namespace = task_queue .namespace ,
225
+ )
238
226
239
227
run_coro = worker .run ()
240
228
run_task = asyncio .create_task (run_coro )
@@ -261,15 +249,13 @@ async def run(self, **kwargs) -> Any:
261
249
async def post_process (self , ** kwargs ) -> None :
262
250
raise ValueError ()
263
251
264
- class Settings (WorkerSettings ):
265
- @classmethod
266
- async def redis_connection (cls ):
267
- return redis_connection
268
-
269
- queue_namespace = task_queue .namespace
270
- factory_kwargs = {"handlers" : {"job" : Job }}
271
-
272
- worker = build_worker (redis_connection , Settings , [task_queue .name ])
252
+ worker = build_worker (
253
+ redis_connection ,
254
+ SimpleJobFactory ,
255
+ {"handlers" : {"job" : Job }},
256
+ [task_queue .name ],
257
+ queue_namespace = task_queue .namespace ,
258
+ )
273
259
274
260
run_coro = worker .run ()
275
261
run_task = asyncio .create_task (run_coro )
@@ -293,15 +279,13 @@ class Job(SimpleJob):
293
279
async def run (self , ** kwargs ) -> Any :
294
280
raise ValueError
295
281
296
- class Settings (WorkerSettings ):
297
- @classmethod
298
- async def redis_connection (cls ):
299
- return redis_connection
300
-
301
- queue_namespace = task_queue .namespace
302
- factory_kwargs = {"handlers" : {"job" : Job }}
303
-
304
- worker = build_worker (redis_connection , Settings , [task_queue .name ])
282
+ worker = build_worker (
283
+ redis_connection ,
284
+ SimpleJobFactory ,
285
+ {"handlers" : {"job" : Job }},
286
+ [task_queue .name ],
287
+ queue_namespace = task_queue .namespace ,
288
+ )
305
289
306
290
run_coro = worker .run ()
307
291
run_task = asyncio .create_task (run_coro )
@@ -323,22 +307,20 @@ async def redis_connection(cls):
323
307
324
308
@pytest .mark .asyncio
325
309
async def test_worker_task_gravekeeper (freezer , redis_connection , task_queue : Queue ):
326
- class Settings (WorkerSettings ):
327
- @classmethod
328
- async def redis_connection (cls ):
329
- return redis_connection
330
-
331
- queue_namespace = task_queue .namespace
332
- factory_kwargs = {"handlers" : {}}
333
-
334
310
scheduled_task = await task_queue .add_task (
335
311
{"name" : "job" , "kwargs" : {}}, task_timeout = 0
336
312
)
337
313
await task_queue .get_task ()
338
314
339
315
freezer .tick (10 )
340
316
341
- worker = build_worker (redis_connection , Settings , [task_queue .name ])
317
+ worker = build_worker (
318
+ redis_connection ,
319
+ SimpleJobFactory ,
320
+ {"handlers" : {}},
321
+ [task_queue .name ],
322
+ queue_namespace = task_queue .namespace ,
323
+ )
342
324
await worker ._call_gravekeeper ()
343
325
344
326
task = await task_queue .check_task (scheduled_task .id )
@@ -353,19 +335,17 @@ class Job(SimpleJob):
353
335
async def run (self , ** kwargs ) -> Any :
354
336
raise ValueError
355
337
356
- class Settings (WorkerSettings ):
357
- @classmethod
358
- async def redis_connection (cls ):
359
- return redis_connection
360
-
361
- @staticmethod
362
- async def on_task_process_exception (job , exc_info ):
363
- exception_handler ()
364
-
365
- queue_namespace = task_queue .namespace
366
- factory_kwargs = {"handlers" : {"job" : Job }}
338
+ async def on_task_process_exception (job , exc_info ):
339
+ exception_handler ()
367
340
368
- worker = build_worker (redis_connection , Settings , [task_queue .name ])
341
+ worker = build_worker (
342
+ redis_connection ,
343
+ SimpleJobFactory ,
344
+ {"handlers" : {"job" : Job }},
345
+ [task_queue .name ],
346
+ queue_namespace = task_queue .namespace ,
347
+ on_task_process_exception = on_task_process_exception ,
348
+ )
369
349
370
350
run_coro = worker .run ()
371
351
run_task = asyncio .create_task (run_coro )
@@ -393,19 +373,17 @@ class Job(SimpleJob):
393
373
async def run (self , ** kwargs ) -> Any :
394
374
raise ValueError
395
375
396
- class Settings (WorkerSettings ):
397
- @classmethod
398
- async def redis_connection (cls ):
399
- return redis_connection
400
-
401
- @staticmethod
402
- async def on_task_process_exception (exc_info ):
403
- raise Exception ("FAIL" )
376
+ async def on_task_process_exception (exc_info ):
377
+ raise Exception ("FAIL" )
404
378
405
- queue_namespace = task_queue .namespace
406
- factory_kwargs = {"handlers" : {"job" : Job }}
407
-
408
- worker = build_worker (redis_connection , Settings , [task_queue .name ])
379
+ worker = build_worker (
380
+ redis_connection ,
381
+ SimpleJobFactory ,
382
+ {"handlers" : {"job" : Job }},
383
+ [task_queue .name ],
384
+ queue_namespace = task_queue .namespace ,
385
+ on_task_process_exception = on_task_process_exception ,
386
+ )
409
387
410
388
run_coro = worker .run ()
411
389
run_task = asyncio .create_task (run_coro )
0 commit comments