Как я могу породить слушателя из 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, если это невыполнимо для данной проблемы.

Было бы неплохо управлять этими потоками/короутинами (останавливать/перезапускать и т.д.). Каким будет лучшее архитектурное решение?

Вернуться на верх