Python-Celery: как прочитать информацию о регистрации, зарегистрированную другими модулями - PullRequest
2 голосов
/ 03 июля 2019

У меня есть задача 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().

Любая помощь будет оценена!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...