Тема: Async + django
Які потреби?
Треба робити доволі важку операцію: пропарсити урл адресу, але додатково ще 10 http запитів зробити до зовнішніх джерел. І повторювано: Користувач вносить в бд список з 100 урл. Системі треба пропарсити (і додатові 10 запитів) кожну з цих урл кожного дня!
Типу: моніторити за урлами користувача кожного дня.
Зрозуміло парсер має бути асинхронним, написав asyncio, python3.5 працює - ок.
Як поєднати з БД з джанго(а мо не джанго?)
Було кілька ідей, найживучіша:
Джанго, форма по якій юзер створює моніторинг. При додаванні урл, використати redis для зберігання в queue.
Окремим процесом запущений асинхронний парсер, який використовуючи queue.Queue, розбирає всі завдання.
Питання: Як додавати меседжі в queue.Queue? Має бути інший потік, при цьому використовувати ту саму область пам'яті. Вихід: threading.Thread ? (поки зупинився на цьому рішенні).
2. Якщо парсер - це окрема програма, окремий потік, як в бд відзначити результат парсингу. 1. Просто конект до БД напряму. - фігово, як на мене, через те, що дублються бекенди. Або 2 - створити API endpoint на джанго, і з парсера стукатись туди, казати що якась урл тільки що була оброблена?
Як на мене виглядає якось страшно і некрасиво, а що б порадили?