@Velays

Как сделать асинхронную многопоточность?

есть 2 скрипта телеграм ботов. Для удобства, "а" - первый бот, первый скрипт. "b" - второй бот, второй скрипт.

Все боты асинхронные. У бота "а" есть своя sqlite3 база данных. бд бота "а" лежит в папке с ботом "а".
У бота "b" нет своей бд. бот "b" должен подключатся к бд бота "а" и читать от туда нужную информацию.

Мне нужно, чтобы одновременно и асинхронно работали боты "а" и "b" и были как-то связаны, чтобы бот "b" брал бд из папки с ботом "а". При том, скрипты ботов "а" и "b" лежать в разных папках.

Как мне это реализовать?
я видел способ, что это можно сделать через .bat файл, но под Ubuntu он не подходит.
  • Вопрос задан
  • 120 просмотров
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Причём тут многопоточность вообще? -_-

Если бот b знает, по какому пути лежит бот a и где в каталоге a лежит БД, он может подключиться, так как БД sqlite это просто файл - но только до тех пор, пока b туда ничего не пишет. И даже тогда есть риск, если a будет обновлять информацию в момент её чтения b. sqlite вообще не предназначена для одновременного доступа.
Так что когда встаёт вопрос об одновременном доступе к БД, от sqlite лучше уходить в сторону полноценных серверных СУБД.

Либо научи бота a отдавать требуемую информацию по запросу, скажем, через сокет. Если он написан на базе asyncio (или фреймворка который его использует), то это не так уж сложно. Тогда с БД будет работать только a, а b должен только знать, как подключиться к a.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы