У меня есть задача celery, operation
, как показано ниже:
# tasks.py
@app.task(bind=True, name='operation')
def operation(self, request):
custom_library = CustomLibrary()
res = custom_library.foo(request)
return res
, как показано в приведенном выше фрагменте кода, задача celery вызывает функцию пользовательской библиотеки custom_library.foo()
.Функция foo()
использует Python logging
для регистрации некоторой информации, такой как процент выполнения, в формате, например, "PROGRESS %58"
:
# custom_library.py
class CustomLibrary:
# __init__() and all other methods are removed here for readability
def foo(request):
# There were some things being done here that are removed for readability
logging.info("PROGRESS %58") # This is just an example. The progress is updated dynamically.
Задача Celery вызывается функцией manage()
вдругой модуль, как показано ниже:
# scheduler.py
def manage(request):
operation.s(request).apply_async()
def get_logging_info():
# get all info from Python logging and return
Теперь я хотел бы иметь функцию get_logging_info()
, которая может иметь доступ к информации PROGRESS
, которая регистрируется функцией custom_library.foo()
.
Любая помощь будет оценена!