diff --git a/crossover/__init__.py b/crossover/__init__.py index 7f1f1a6..ae30352 100644 --- a/crossover/__init__.py +++ b/crossover/__init__.py @@ -124,7 +124,7 @@ def __init__(self, broker, remote_task_name, task=CROSSOVER_ROUTER_NAME, queue=C self.remote_task_name = remote_task_name def __call__(self, *args, **kwargs): - metrics = CrossoverMetrics() + metrics = CrossoverMetrics(task_name=self.remote_task_name) metrics.set_origin_time() kwargs['task_name'] = self.remote_task_name @@ -139,9 +139,11 @@ def __call__(self, *args, **kwargs): class CrossoverMetrics(object): def __init__( self, + task_name=None, origin_time=None, remote_time=None, ): + self.task_name = task_name self.origin_time = origin_time self.remote_time = remote_time @@ -163,12 +165,14 @@ def load(cls, xover_payload): if not metrics: return None return cls( + task_name=metrics.get('_task_name'), origin_time=metrics.get('_origin_time'), remote_time=metrics.get('_remote_time') ) def dump(self): return dict( + _task_name=self.task_name, _origin_time=self.origin_time, _remote_time=self.remote_time, ) diff --git a/examples/project_1/project.py b/examples/project_1/project.py index ad87a14..2d4946d 100644 --- a/examples/project_1/project.py +++ b/examples/project_1/project.py @@ -44,3 +44,4 @@ def calculate_times(callback_meta, x, y): @crossover.metrics_subscribe() def metrics_subscriber(metrics): redis.db.set('dispatch_queue_time', metrics.dispatch_queue_time) + redis.db.set('task_name', metrics.task_name) diff --git a/setup.py b/setup.py index 87fe29e..132a1ee 100644 --- a/setup.py +++ b/setup.py @@ -38,7 +38,7 @@ def long_desc_img_replacer(long_desc): setup(name='celery-crossover', - version='1.1.11', + version='1.1.12', description='Celery Crossover aims to make it really easy to execute tasks in another service.', long_description=long_description, long_description_content_type='text/markdown', diff --git a/tests/test_crossover.py b/tests/test_crossover.py index b038498..7b7c8f7 100644 --- a/tests/test_crossover.py +++ b/tests/test_crossover.py @@ -27,6 +27,7 @@ def test_auto_callback(worker_1, worker_2, p1_client, redis): dispatch_queue_time = redis.get('dispatch_queue_time') assert dispatch_queue_time is not None assert isinstance(float(dispatch_queue_time), float) + assert redis.get('task_name') == b'plus' def test_callback_meta(worker_1, worker_2, p1_client, redis): @@ -53,3 +54,4 @@ def test_callback_meta(worker_1, worker_2, p1_client, redis): dispatch_queue_time = redis.get('dispatch_queue_time') assert dispatch_queue_time is not None assert isinstance(float(dispatch_queue_time), float) + assert redis.get('task_name') == b'times'