Andrey
а какая ошибка?
Traceback (most recent call last): File "...", line 4, in <module> DATABASE_URL = os.environ['postgres://eitleo...'] File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/os.py", line 678, in getitem raise KeyError(key) from None KeyError: 'postgres://eitleo....'
Tishka17
эм
Tishka17
нах ты делашеь os.environ ?
MOOLAN1234
Всем привет, кто нибудь сталкивался с ошибкой R10 в Heroku,в доке описано что это потому что timeout в 60sec heroku не привязался не к одному порту, но мне это не о чем не сказало, так как у меня бот пробовал писать bot/worker в Proctfile, все равно падает,может быть кто нибудь подскажет.
Tishka17
Пробую так, но выходит ошибка: DATBASE_URL=os.environ['postgres://eitleo........'] con = psycopg2.connect(DATABASE_URL, sslmode='require')
ты или передавай строку коннекта через переменные окружения с нормальными именем или пиши руками прям в коде строку.
Spirit
нах ты делашеь os.environ ?
чтоб по кайфу питон тачку видел
Viktor
Есть тут энтузиасты кто пишет под android на python?
МишанЯ
Привет. Вообще никак не могу въехать в asyncio. Целью является написания бота для vk. Был бот на requests, но при частых обращениях к нему - долго думал и терял ответы. Может кто направить с какой стороны лучше зайти к асинхронности ?
Slam!
Хочу совет
Не надо
Tishka17
Хочу совет
Совет: не пиши на питоне под Андроид
МишанЯ
threading не выход, на недорогом vps дольше соображает чем в один поток.
Tishka17
А на чем?
Котлин
O
Котлин
Благодарю
Medoed
О, сработало, спасибо. Но странно, на сайте у них написано с os.environ делать🤔
ну так сравни что ты написал и что у них написано DATABASE_URL = os.environ['DATABASE_URL'] - вот что у них
Ilshat
Привет. Тут реклама разрешена? В правилах нет ничего по этому поводу. Для справки спам не равно реклама.
Slam!
threading не выход, на недорогом vps дольше соображает чем в один поток.
У асинкио столько внутренних вызовов что возможно похуже будет
Aragaer
я тут поднял свою программку под андроид...
Aragaer
110кб апк файл. Но "PreferenceFragment is deprecated, переходи на androidx.preference". Подключил либу (еще даже не использую), apk стал 550кб.
AMD Chan
если клиент стартует и у него нет подключения к серверу - выдает значение dead. если при его попытках подцепиться запустить сервер - он изменит значение с Dead на значение слушающих серверов. Если отключить сервер - значение Dead не будет присвоено. Уже как наверное пол часа пытаюсь понять, в чем проблема, помогите. Да, да, не стоит использовать глобальные переменные. У меня уже есть структура, я пытаюсь дебагово сделать достаточно важную вещь, хотя-бы что-бы работало.
AMD Chan
МишанЯ
У асинкио столько внутренних вызовов что возможно похуже будет
Думаю что на vps с 1 ядром asyncio лучше будет, чем thead-у.
Tishka17
То есть это сколько у тебя тредов и что в них?
МишанЯ
longpoll пришло сообщение, убежали в поток на обработку, а сам дальше ждёт сообщения. Сколько тредов будет, если будут писать боту человек 20-30 одновременно...
Tishka17
Что за dead?
Aragaer
правда оно стало deprecated вот только начиная с Q. Но все равно, блин. Похоже, буду просто руками работать с настройками.
МишанЯ
1. :)
Не думаю
Tishka17
правда оно стало deprecated вот только начиная с Q. Но все равно, блин. Похоже, буду просто руками работать с настройками.
Ага. Они решили выпилить из системы кучу вещей и переложить на сторону приложения, чтобы автор сам обновлял
Tishka17
Не думаю
А я думаю
МишанЯ
1 уже longpoll, и ещё по одному на каждый приводящее смс)
Slam!
С чего это?
он про main-поток
Tishka17
1 поллинг и в нем все обработчики, не?
Tishka17
Или что у тебя за либа?
Tishka17
Ну а зачем ты стартуешь потоки обработчики?
Slam!
Ребят, зачем это всё
Tishka17
Делай все в один :)
МишанЯ
Ну а зачем ты стартуешь потоки обработчики?
Чтобы не тормозить монитор уведомлений.
Slam!
Пришел апдейт Вызвал соответствующий хандлер в потоке
Алексей
А как можно в бесконечном цикле ждать сообщений от подпроцесса(который тоже работает вечно), и читать данные? Или лучше это сделать через multiprocessing.Process?
МишанЯ
Так ты даже не пытался на асинкио писать. Попробуй. Будут вопросы, приходи
Дак где же мне пытаться, если я никак не пойму там что куда и сколько😂
Tishka17
Пришел апдейт Вызвал соответствующий хандлер в потоке
В это время получил следующий апдейт и нарушил порядок обработки сообщений. А если упал при обработке - вообще хз что
AMD Chan
если клиент стартует и у него нет подключения к серверу - выдает значение dead. если при его попытках подцепиться запустить сервер - он изменит значение с Dead на значение слушающих серверов. Если отключить сервер - значение Dead не будет присвоено. Уже как наверное пол часа пытаюсь понять, в чем проблема, помогите. Да, да, не стоит использовать глобальные переменные. У меня уже есть структура, я пытаюсь дебагово сделать достаточно важную вещь, хотя-бы что-бы работало.
так. сейчас объясню как это работает. клиент создает n потоков для общения с серверами. и у него есть поток, которому нужно знать, активно ли соединение с каждым сервером. он эти данные пишет в json. для каждого потока есть булька, которая является статусом активности соединения, она изменяется, если соединение разрывается из-за каких-либо причин. и булька служит параметром для записи. в итоге в json клиент запишет либо [0,1,2] (при бульках true на всех трех серверах) допустим, либо [dead, 1, dead], при false, true, false
Slam!
От одного человека - нет
контекст разве что сохранять
Slam!
ну с ВК работать кака-бяка
Tishka17
Maksim если это вакансия - оформи нормально. Если нет - тем более
Slam!
сокет так просто не убьешь
Slam!
запросы на коннект он видеть еще будет, а процесса-обработчика как такового уже нет
Tishka17
А он send у тебя вообще делает хоть иногда?
Tishka17
Вообще это корректно так делать?
МишанЯ
Как работает у меня код. Идёт requests запрос длительный longpoll. Ждёт ждёт...бац, пришло сообщение. Выдергивпю это сообщение и отдаю его потоку, чтобы он его обрабатывал и потом выслал ответ тому человеку или ещё что то, НО основная программа должна в это время продолжать ждать новые сообщения, т.е создаётся новый longpoll запрос. Представляете, когда борту будут писать через 1 секунду хотябы человек 10, это он пока отошлет ответ первому, сделает запрос, возмет ондующее сообщение и опять уйдёт на обработку. А там ещё 10 напишет и будет вочереди у ВК лежать останется 18 сообщений которые также надо обработать.
AMD Chan
send делает. но я хочу понять, почему settimeout не работает и булька после выхода тайм-аута не false-ится.
МишанЯ
От одного человека - нет
Каждое сообщение - это новое событие и его надо обработать, без рщницы от кого. Это новое уведомление в любом случае.
AMD Chan
протестил с settimeout, ничего не изменилось, вот именно