через asyncio, текущая задача контролируется лишь по тому времени, пока действует asyncio.sleep()?
Просто пробовал методы .stop() и .close() и они вообще не работают...
Что значит "текущая задача контролируется"?
И зачем ты какие-то методы используешь без чтения банальной документации
Тип, какие-то действия выполняются в цикле событий, пока этот цикл не прерывается и начинается выполнение другого цикла.
Я ниче не понял, ты можешь нормально объяснить без "какие-то действия выполняются, а потом выполняются другие"? Как это вообще связано с "контролем текущей задачи"?
Я как раз читаю документацию, но так как много всего непонятно, пытаюсь на практике разобраться...
Ну как сформулируешь вопрос, то приходи
чё ты хочешь сделать
Ок. Я пытаюсь сейчас одновременно запустить два клиента у telethon, но постоянно вылазит ошибка от sqlite3, так как она работает только в одном потоке, то два скрипта не могут подключиться к ней одновременно. Пока единственное решение которое я нашёл - попытаться через asyncio создать два таска, и переключать в зависимости от условий. Пришла команда боту на одном из клиентов - сохранил значение в глобальной переменной скрипта, отключился от цикла событий. К циклу событий подключился второй клиент и выполнил необходимые ему действия, потом опять передав управление клиенту с ботом. Просто чтобы скрипт всё время был в одном потоке и бд не ругалась )
я не работал с бд, но к dict обращаюсь одновременно в 7 потоков
Я погуглил, есть библиотека sqlite-async, мб решит проблему)
Ну, в твоём случае проблем действительно не будет, так как нет ограничения на один поток ))
Так ты тоже убери)
В том то и проблема, с sqlite работает библиотека, а не я. Я бы вообще эту хрень не использовал, однако прийдётся переписывать библиотеку....
Склайт работает только с одним коннектом.Закрывай соединение после каждого запроса
ну можно завернуть всё общение с базой в один поток типа такого https://github.com/random-python/data_pipe
А если ты один раз будешь грузить бд, но обращаться к ней в несколько потоков через асинхо?
Я это и пытаюсь сделать, пока выходит плохо. За инфу спасибо, сейчас изучу!)
Основная проблема - через telethon можно общаться с Telegram Core API, но почему при разработке выбор пал на SQLite мне неизвестно. К тому же её ещё и настраивать нельзя, только использовать то что есть. А есть очень хочется, поэтому вот сижу, пытаюсь понять как из невозможного сделать возможное )
Во-первых, соединения закрывай за собой. Во-вторых, то, что ты описываешь это какой-то ад. Какие-то "подключения к циклу событий", "отключения от цикла событий", сохранение сообщений пользователя в глобальные переменные. Не удивлён, что у тебя скулайт ругается
Не подскажешь как их закрыть? Не могу инфу об этом найти...
connection.close(), а лучше через контекстной менеджер
а вы часом не используете ОДИН коннекшен к базе из разных потоков?)
Обсуждают сегодня