Skip to content

Instantly share code, notes, and snippets.

@palawer
Created September 25, 2023 10:51
Show Gist options
  • Save palawer/72a852f10f50f066266c40bb2d71754a to your computer and use it in GitHub Desktop.
Save palawer/72a852f10f50f066266c40bb2d71754a to your computer and use it in GitHub Desktop.
Celery custom backend fields
celery_app = Celery(
'celery_tasks',
broker=BROKER_URL,
backend='celery_tasks:CustomBackendResult',
elasticsearch_save_meta_as_text=False,
result_extended=True,
)
class CustomBackendResult(ElasticsearchBackend):
def __init__(self, url=None, *args, **kwargs):
# https://github.com/celery/celery/blob/20b396d6e02c0b91f2e4663d0cd2355f76799c5e/celery/app/backends.py#L68
super().__init__(url=BACKEND_URL, *args, **kwargs)
def _get_result_meta(self, result, state, traceback, request, format_date=True, encode=False):
meta = super()._get_result_meta(result, state, traceback, request, format_date=format_date, encode=encode)
if isinstance(result, dict):
for k,v in result.items():
meta[k] = v
return meta
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment