Я пытаюсь написать приложение в Tornado, которое после получения запроса POST, содержащего категорию, будет вызывать функцию, которая будет выполнять (блокировать) HTTP-запросы к списку RSS-каналов (хранится в базе данных CouchDB) с в этой теме, затем выполните некоторую сортировку данных, возвращая словарь в обработчик асинхронных запросов Tornado. Пока что, кажется, он работает относительно хорошо при первом обращении к нему пользователя.
Во втором POST-запросе к той же странице он часто объединяет результаты, полученные из более чем одной категории, как если бы вызовы функций для каждой категории по какой-то причине объединялись. Я новичок в программировании на основе событий и понятия не имею, почему это происходит. Это становится беспорядком, так как пользователь нажимает на одну категорию и получает результаты для обеих.
Вот немного схемы структуры:
Calls: Tornado Async Handler -> get_data(category) -> RSS_handler(RSS_feed)
Returns: self.write(data) <- more_data <- some_data
Есть идеи, почему эти звонки объединяются? Мой класс обработчика RSS очищает все переменные-члены в его функции init , как и функция get_data, которая выполняет обработку.
(включил бы код, но его слишком много, чтобы его можно было вставить здесь, и я понятия не имею, какая строка вызывает его)