rick1177

rick1177

Пикабушник
Дата рождения: 19 декабря 1984
поставил 5405 плюсов и 495 минусов
отредактировал 5 постов
проголосовал за 5 редактирований
Награды:
За неравнодушие к судьбе Пикабу5 лет на Пикабу
54К рейтинг 150 подписчиков 55 подписок 651 пост 49 в горячем

Вопросы Незнайки по программированию на Python (вопрос 1)

Разъясните сущность получения соединения с базой и курсора и что происходит в неожиданных ситуациях.

Товарищи, прошу не уничтожать сильно за описанные вопросы. Я просто учусь. Искренне надеюсь на помощь сообщества и некоторое наставничество.

По результатам данного вопроса и предложенным вами материалам к прочтению, обязуюсь разобраться основательно и выпустить по этому поводу пост для тех, кто задумается о том же.

Возможно, ответы на ои вопросы есть в документации или являются базовыми, однако, я не нашёл ответов или плохо искал.

Речь пойдёт про работу с базой данных PostgreSQL в приложении на Python.

Итак. Из базовых описаний процесса работы мы знаем, что при работе с БД требуется провести простой объём операций, в частности:

# Создать объект "соединение"
conn = psycopg2.connect(паратметры)
# Получить курсор по этому соединению
cursor = conn.cursor()
# Формируем какой-то запрос
cursor .execute("Запрос на вставку данных в базу")
# Отправляем данные в базу
conn .commit()
# Закрываем соединение
conn .close()

Кажется всё просто. Но есть ряд вопросов.

  1. А что, собственно, собой представляет объект conn? Имеется ввиду, что происходит на стороне базы, когда запрашивается соединение? Производится какая-то запись куда-то? Как это выглядит?

  2. Почему объект conn нельзя десериализовать, чтобы передавать его между процессами в мультипроцессинге?

  3. А что если твоё приложение и функция, которая открыла соединение упала, не закрыв соединение, что происходит с соединением на стороне базы?

  4. А если твой код выглядит примерно так (ниже). Т.е. в бесконечном цикле в отдельном процессе выполняется функция, тогда как закрывать соединение? Когда? А что будет, если программа вылетит?

    def функция(параметры):

    conn = psycopg2.connect(паратметры)

    cursor = conn.cursor()

    while True:

    cursor .execute(запрос)

    conn.commit()

    time.sleep(2)

    if __name__ == "__main__":

    mp_take_proxy_us_proxy_org = mp.Process(target=Фнукция, kwargs={параметры}, )

Вот пока вроде и весь пул вопросов. Подскажите, пожалуйста.

Показать полностью

Что за вид боевого искусства, всё таки?

Товарищи, подскажите?

Помощь с gmail

Товарищи, добрый день.
Коллега столкнулась с проблемой отправки писем с корпоративной почты на мою gmail. Ей возвращается такая проблема

This is the mail system at host mail.yandex.net.

I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.

You can find the the possible reasons of the undelivered message letter here:
https://yandex.com/support/mail-new/wizard/zout_send/not-got...

Please, do not reply to this message.


<....@Gmail.com>: host
gmail-smtp-in.l.google.com[2a00:1450:4010:c01::1b] said: 550-5.7.26 This
mail is unauthenticated, which poses a security risk to the 550-5.7.26
sender and Gmail users, and has been blocked. The sender must 550-5.7.26
authenticate with at least one of SPF or DKIM. For this message, 550-5.7.26
DKIM checks did not pass and SPF check for [import-servis.com] did
550-5.7.26 not pass with ip: [2a02:6b8:c02:900:1:45:d181:d101]. The sender
550-5.7.26 should visit 550-5.7.26
https://support.google.com/mail/answer/81126#authentication for 550 5.7.26
instructions on setting up authentication.
m25-20020a195219000000b004fe1393f184si5733687lfb.42 - gsmtp (in reply to
end of DATA command)


Reporting-MTA: dns; forward101b.mail.yandex.net
X-Yandex-Queue-ID: 97D1D60029
X-Yandex-Sender: rfc822; ....@import-servis.com
Arrival-Date: Thu, 17 Aug 2023 07:53:58 +0300 (MSK)

Final-Recipient: rfc822; ...@Gmail.com
Original-Recipient: rfc822;gureev.prof@gmail.com
Action: failed
Status: 5.7.26
Remote-MTA: dns; gmail-smtp-in.l.google.com
Diagnostic-Code: smtp; 550-5.7.26 This mail is unauthenticated, which poses a
security risk to the 550-5.7.26 sender and Gmail users, and has been
blocked. The sender must 550-5.7.26 authenticate with at least one of SPF
or DKIM. For this message, 550-5.7.26 DKIM checks did not pass and SPF
check for [import-servis.com] did 550-5.7.26 not pass with ip:
[2a02:6b8:c02:900:1:45:d181:d101]. The sender 550-5.7.26 should visit
550-5.7.26 https://support.google.com/mail/answer/81126#authentication for
550 5.7.26 instructions on setting up authentication.
m25-20020a195219000000b004fe1393f184si5733687lfb.42 - gsmtp


Куда копать? Что делать?

Показать полностью

На языке металлический привкус, немного немеет. Подскажите

Странное ощущение на языке и губах. Как будто лижишь батарейку, металл... не могу описать иначе. Лёгкое жжение.
с утра обычно норм, а к вечеру появляется и усиливается. К врачу записался, но хочется услышать, что это может быть?

Если вы бежите с Пикабу, то скажите, куда?

Товарищи, наверное поддержу мысль, что сообщество уже не то. Вижу много тех, кто был здесь годами, а сейчас уходит. Но скажите, куда? Где хорошо? Возьмите с собой?

Вопрос по приложению на Python для Linux

Ребят, помогите, плиз, разобраться.

Сделал небольшое приложение, чисто экспериментальное, в котором валятся процессы ручками. Но, после окончания работы приложения, выбрасывается ошибка. Не могу понять природу этой ошибки.

Помогите понять её природу и что с ней делать.

P.S. Решалась проблема заваливания процессов и (зараза, пока не получается полностью) закрытия процессов зомби.

Файл приложения

Продолжение поста «Вопрос одновременно про linux и python»

Товарищи! Приветствую.

Спасибо Вам большое за помощь! Вот здесь и здесь вы прям очень помогли! @BelayaFleshka, тебе отдельно спасибо. Всё что ты сказал - всё изучил, научился, применил.

Теперь возникла новая проблема (ощущение, что я расту, но как дитятко, на каждую возможную ошибку наступаю ). @impcyber, тебя тоже призываю ))

В общем, запустил своё приложение. Оно начало нормально работать и с отключенным терминалом. Но прошло некоторое время (часа 2) и оно отрубилось killed. И тут я завис. Я так понимаю, что система убивает программу, видимо, как это описывается здесь.И что с этим сделать, пока даже и не знаю.

Попытался перезапустить программу, но она сразу сделала killed. Я полагаю, что что-то с переполнением чего-то, но вот чего и что проверять - не знаю.

Подскажите направления следования и изучения?

Спасибо.

Вопрос по VDS

Товарищи, подскажите, пожалуйста.

Купил VDS из расчёта, что на нём 24/7 будет работать приложение.

Но у меня складывается впечатление, что как только я не проявляю там какой-то активности, то он начинает засыпать и перестаёт выполнять программу. Я, 15.07 запустил там приложение. Потом отсоединился и логи, которые должны писаться в базу, перестали писаться.

Только сейчас дошли руки поглядеть и действительно, когда я закрыл терминал, через какое-то время небольшое, видимо, всё прекратилось.

Подскажите, пожалуйста, что я сделал не так и как с этим бороться?

Спасибо.

Отличная работа, все прочитано!