а как сделать чтобы работало 2 приложение одновременно например на heroku?
Не работал с heroku, но на сайте написано что-то про оркестрацию контейнеров. Собственно, приложения в разных контейнерах могут работать. Обмен данными между ними через очереди сообщений, HTTP-API или базу можно организовать.
Ну или через multiprocessing создать два процесса в одном приложении, один из которых будет обрабатывать сообщения, а второй - парсить, обмениваться данными через встроенные в стандартные библиотеки механизмы
А это разве так работает? Мне казалось что GIL переключает между потоками каждые N инструкций виртуальной машины, вне зависимости от I/O.
n4g4t0: https://tproger.ru/translations/global-interpreter-lock-guide/ А вообще не понимаю я возмущений о Гиле, за почти 20 лет ни разу не столкнулся с негативными эффектами от Гила, да и Гил есть во многих других языках, это не что-то специфично-питоновское