Как я могу породить слушателя из Django?
Я хочу иметь возможность запускать слушателя потока Twitter по запросу к проекту django.
Например: пользователь создает объект Tracker (ключевые слова: apple, microsoft). Затем вызывает конечную точку /trackers/1/start
, и представление запускает поток/корутину для прослушивания потока Twitter для этих ключевых слов. Всякий раз, когда твит появляется в потоке, он создает задачу celery для сохранения твита.
Конечно, он должен быть неблокирующим. Итак:
- нужно ли создавать новые потоки для каждого трекера (слушателя twitter)?
- следует ли мне использовать async def views? Я могу создать синхронизирующие или асинхронизирующие функции для
tweepy
слушателя/потока. В настоящее время у меняRuntimeError: You cannot use ATOMIC_REQUESTS with async views.
, когда я делаю это.
Кстати, я планирую развернуть на Heroku, но могу выбрать VPS, если это невыполнимо для данной проблемы.
Было бы неплохо управлять этими потоками/короутинами (останавливать/перезапускать и т.д.). Каким будет лучшее архитектурное решение?