Как выполнить асинхронную постобработку в CherryPy?

Контекст: Представьте, что у вас есть стандартное приложение CherryPy hello word:

   def index(self):
      return "Hello world!"
   index.exposed = True

и вы хотели бы выполнить некоторую постобработку, то есть записать обработку запроса, или просто зарегистрировать тот факт, что нам звонили с определенного IP. Что бы вы сделали, вероятно, это:

def index(self):
   self.RunMyPostProcessing()
   return "Hello world!"
index.exposed = True

Однако это увеличит время обработки вашего запроса. (Кстати. И, возможно, вы будете использовать декораторы или даже какой-нибудь более сложный метод, если вы хотите вызывать его для каждой функции).

Вопрос: Есть ли способ создания очереди (буфера), поддерживающей глобальную многопоточность, в которую каждый запрос может записывать сообщения (события), которые должны быть зарегистрированы, в то время как какая-то магическая функция захватит его и постобработает? Знаете ли вы образец для такой вещи?

Могу поспорить, что CherryPy поддерживает что-то подобное :-)

Заранее спасибо...

Ответы на вопрос(3)

Ваш ответ на вопрос