Тема: AHK: как сделать многопоточность для бота в Telegram?
Приветы. У меня довольно жирный игровой бот для телеграма (5.2к строк), суть сводится к дуэлям между игроками в разных мини-играх. Проблема довольно очевидна - однопоточность. Бот обрабатывает все запросы по очереди, это вызывает задержку при большом количестве запросов. Плюс если я хочу сделать задержку между сообщениями, она распространяется на всех пользователей.
Добрые люди мне посоветовали разделить бота на сервисы, то есть чтобы разные команды, игры и функции выполняли разные скрипты в разных потоках, и это решение меня устраивает. Очередь обработки на игру лучше, чем очередь обработки абсолютно всех запросов. И вопрос - как это сделать?
База данных в INI файлах в папке, все работает довольно быстро. Скрипт каждые 100 мс собирает апдейты с телеграма, складывает их в массив, затем преобразует JSON объекты в понятные для AHK и уже обрабатывает. Как я понимаю, можно запустить несколько скриптов: обработка главного меню и обработка для каждой из 4 доступных игр (всего 5).
Получается, должен быть главный скрипт, который будет собирать апдейты и посылать их нужным скриптам на обработку. В каком виде их посылать? Получается тут вопрос реализации бесперебойного сообщения JSON-объектов между двумя скриптами. Через память, через временные файлы или еще не пойми как.
Помогите, пожалуйста. Если вы хотите предложить конкретный способ, то приложите понятный пример, по которому я мог бы использовать этот способ или правильно загуглить.