Я пытаюсь использовать request_html для анализа HTML-страницы, требующей рендеринга JavaScript. И я обнаружил, что использование этой библиотеки (мое последнее пристанище) требует обработки ТОЛЬКО в основном потоке.
Дело в том, что я получаю запрос на запуск всего процесса в запросе представления Django, который порождается в отдельном потоке, отличном от потока пользовательского интерфейса, что усложняет задачу.
Кажется, не существует четко определенного способа порождения вещей в главном потоке из другого! (Как в Android (Java), например: activity.runOnUiThread (callback ...)).
Python предоставляет циклы и очереди, но я мог бы найти небольшое объяснение того, как сигнализировать основному циклу Python (Django?) О запуске обратного вызова. Не говорить о том, чтобы ждать, пока оно закончится в этой другой теме ...
Я уверен, что есть способ сделать это без вызова всего отдельного процесса (многопроцессорная обработка AKA) - я знаю эту опцию. Это сложное решение, которое я использую для других более тяжелых задач, но оно требует передачи данных назад / вперед из дочернего процесса уродливо способами.
Итак, какой самый простой способ вызвать код в потоке main / UI моего сервера Django?