[~] Refactor

This commit is contained in:
Siarhei Siniak 2024-07-06 20:24:19 +03:00
parent 8b4d78ac53
commit 639e755dbd
2 changed files with 15 additions and 11 deletions

@ -1,15 +1,19 @@
from .config import tiktok_config from .config import tiktok_config
from .utils import kombu_register_json_dataclass
import celery import celery
import redis import redis
c = tiktok_config() c = tiktok_config()
kombu_register_json_dataclass()
app = celery.Celery( app = celery.Celery(
__name__, __name__,
broker=c.celery_broker, broker=c.celery_broker,
result_backend=c.celery_result_backend, result_backend=c.celery_result_backend,
accept_content=['pickle'], accept_content=['json-dataclass', 'json',],
task_serializer='json-dataclass',
) )
app.autodiscover_tasks(c.celery_imports) app.autodiscover_tasks(c.celery_imports)

@ -1,16 +1,14 @@
import celery.app.task import celery.app.task
import importlib import importlib
import kombu.serialization
import kombu.utils.json import kombu.utils.json
from typing import ( from typing import (
Any, Any,
) )
class Task(celery.app.task.Task): class Task(celery.app.task.Task):
def __call__(self, *args, **kwargs): def __call__(self, *args, **kwargs):
res = super().__call__(*args, **kwargs) res = super().__call__(*args, **kwargs)
return self._to_native(res) return self._dumps(res)
@classmethod @classmethod
def _loads(self, data_str: str) -> Any: def _loads(self, data_str: str) -> Any:
@ -42,10 +40,12 @@ class Task(celery.app.task.Task):
else: else:
return kombu.utils.json.dumps(data) return kombu.utils.json.dumps(data)
kombu.serialization.register( def kombu_register_json_dataclass():
'json-dataclass', import kombu.serialization
Task._dumps, kombu.serialization.register(
Task._loads, 'json-dataclass',
content_type='application/json', Task._dumps,
content_encoding='text', Task._loads,
) content_type='application/json',
content_encoding='text',
)