summaryrefslogtreecommitdiff
path: root/rq/serializers.py
diff options
context:
space:
mode:
authorSelwin Ong <selwin.ong@gmail.com>2023-05-01 12:44:32 +0700
committerGitHub <noreply@github.com>2023-05-01 12:44:32 +0700
commit64cb1a27b9d1f2fd52bbbb5c1e4518c024f74685 (patch)
treefc792e7d75de99843bb130cd0acdfeced6d91ec0 /rq/serializers.py
parent8a9daecaf2c6ff542ec1e4be7d8ec9ae4c8b803c (diff)
downloadrq-64cb1a27b9d1f2fd52bbbb5c1e4518c024f74685.tar.gz
Worker pool (#1874)
* First stab at implementating worker pool * Use process.is_alive() to check whether a process is still live * Handle shutdown signal * Check worker loop done * First working version of `WorkerPool`. * Added test for check_workers() * Added test for pool.start() * Better shutdown process * Comment out test_start() to see if it fixes CI * Make tests pass * Make CI pass * Comment out some tests * Comment out more tests * Re-enable a test * Re-enable another test * Uncomment check_workers test * Added run_worker test * Minor modification to dead worker detection * More test cases * Better process name for workers * Added back pool.stop_workers() when signal is received * Cleaned up cli.py * WIP on worker-pool command * Fix test * Test that worker pool ignores consecutive shutdown signals * Added test for worker-pool CLI command. * Added timeout to CI jobs * Fix worker pool test * Comment out test_scheduler.py * Fixed worker-pool in burst mode * Increase test coverage * Exclude tests directory from coverage.py * Improve test coverage * Renamed `Pool(num_workers=2) to `Pool(size=2)` * Revert "Renamed `Pool(num_workers=2) to `Pool(size=2)`" This reverts commit a1306f89ad0d8686c6bde447bff75e2f71f0733b. * Renamed Pool to WorkerPool * Added a new TestCase that doesn't use LocalStack * Added job_class, worker_class and serializer arguments to WorkerPool * Use parse_connection() in WorkerPool.__init__ * Added CLI arguments for worker-pool * Minor WorkerPool and test fixes * Fixed failing CLI test * Document WorkerPool
Diffstat (limited to 'rq/serializers.py')
-rw-r--r--rq/serializers.py4
1 files changed, 2 insertions, 2 deletions
diff --git a/rq/serializers.py b/rq/serializers.py
index b9b7d9c..96de3f5 100644
--- a/rq/serializers.py
+++ b/rq/serializers.py
@@ -1,7 +1,7 @@
from functools import partial
import pickle
import json
-from typing import Optional, Union
+from typing import Optional, Type, Union
from .utils import import_attribute
@@ -21,7 +21,7 @@ class JSONSerializer:
return json.loads(s.decode('utf-8'), *args, **kwargs)
-def resolve_serializer(serializer=None):
+def resolve_serializer(serializer: Optional[Union[Type[DefaultSerializer], str]] = None) -> Type[DefaultSerializer]:
"""This function checks the user defined serializer for ('dumps', 'loads') methods
It returns a default pickle serializer if not found else it returns a MySerializer
The returned serializer objects implement ('dumps', 'loads') methods