Задать вопрос
  • Как с помощью ps найти основной дочерний процесс?

    @alenov Автор вопроса
    Абсолютно с вами согласен. С точки зрения надёжности решение с лок-файлом лучше, чем читать вывод ps. Просто дело в том, что требования к надёжности в данном случае не очень строгие. Поэтому чтение вывода ps вполне подходит. Да и условия эксплуатации скрипта - только cron. Если всё это сложить, да плюс принцип "Не делай то, что не нужно делать" - решение приемлемое!

    Спасибо!
  • Как с помощью ps найти основной дочерний процесс?

    @alenov Автор вопроса
    Да, с lock файлом понятно, такое решение часто предлагается. Только там нужно ещё предусматривать случай, когда процесс падает аварийно, и lock файл остаётся. Нужно писать в него pid, и потом проверять наличие такого процесса. Сложнее. Я хотел просто посчитать дочерние процессы.
    В любом случае спасибо за ответ!
  • Vue.js: почему Vue не видит обновлённые реактивные данные?

    @alenov Автор вопроса
    Не понял что значит "У вас изначально это поле не объявлено,...", но ваше решение помогло!
    Спасибо!
  • Vue.js: почему Vue не видит обновлённые реактивные данные?

    @alenov Автор вопроса
    Поле включено в систему реактивности:

    <v-textarea
       v-model="form.some_field"
    ></v-textarea>


    var vm = new Vue({
        el: '#app',
        vuetify: new Vuetify(),
        data: {
            form: {
               some_field: null,
               ...
               ...
            }    
        },
        ...


    Vue же обновляет его после того, как что-то тронешь на форме!
  • Как найти причину "Exception: idle transaction timeout" в приложении Flask+psycopg2+postgresql+pgbouncer?

    @alenov Автор вопроса
    Melkij, ну хорошо, не буду спорить, при случае попробую ещё раз проверить. Спасибо!
  • Как найти причину "Exception: idle transaction timeout" в приложении Flask+psycopg2+postgresql+pgbouncer?

    @alenov Автор вопроса
    Melkij,
    И да, ещё
    kill -9 любого процесса базы роняет целиком базу в рестарт.

    это не так. Реальная история: есть 2 процесса с idle transaction, и много "SELECT waiting", которые блокированы. Убиваю один процесс из двух - не угадал, картина не меняется, но и база не падает в рестарт. Когда убиваю второй процесс, в котором idle transaction, остальные процессы спокойно отрабатывают и ситуация нормализуется. Сам видел))
    Спасибо за помощь, разобрался с superuser_reserved_connections, буду копать в этом направлении.
  • Как найти причину "Exception: idle transaction timeout" в приложении Flask+psycopg2+postgresql+pgbouncer?

    @alenov Автор вопроса
    Melkij, Не знаю, как в этом убедиться))
    Кстати, ваше замечание по поводу
    Снимать процессы вызовом pg_terminate_backend (а для того не работать суперпользователем и тогда superuser_reserved_connections вам возможность административно подключиться даст)

    Именно этот способ я поначалу использовал. Схема была такая. В кроне запускалась обработка из скрипта, который выполняется в контексте приложения, т.е. в итоге выполнялся запрос как-бы от web-приложения. Postgres, уже имея превышения количества соединений, давал отлуп.

    Про superuser_reserved_connections не знал. Если правильно понял, нужно создать суперпользователя в postgres, от имени которого и запускать эту обработку?
  • Как найти причину "Exception: idle transaction timeout" в приложении Flask+psycopg2+postgresql+pgbouncer?

    @alenov Автор вопроса
    Поставил версию 1.12. Не помогло.

    Вообще, непонятно, как пользователь, который открыл страницу в браузере, может сразу же получить ошибку, которая в логе приложения описывается как idle transaction timeout, если таймаут аж 10 минут? Баунсер использовал для запроса не свободное соединение из пула, а какое-то, в котором уже 10 минут как висит незавершённая транзакция? Как такое может быть??? Или я что-то не понимаю в этой жизни? ))
  • Как найти причину "Exception: idle transaction timeout" в приложении Flask+psycopg2+postgresql+pgbouncer?

    @alenov Автор вопроса
    Ну вообще-то kill-9. Другого способа на боевом сервере, где нужно быстро соображать, не нашёл.
    Версия баунсера 1.7 Похоже, ваша наводка на фикс актуальна, если, конечно, именно из-за этого бага и происходит всё это. Спасибо.
    Вообще, баунсер, как я говорил, был установлен с единственной целью - убивать длинные транзакции, которые почему-то блокировали другие запросы, из-за чего происходило превышение количества соединений. Версия postgres 9.5 такой опции не имеет ещё. Был вдохновлён поначалу этим решением. Но оно оказалось нерабочим, потому что в момент, когда постгрес больше не принимает запросы по причине connection_limit, поздно пить боржоми.
    Как просто удалить (хотя бы и kill-9) idle транзакции другим способом - не нашёл.
  • Как тестировать сервис А, который обращается к сервису Б, не поднимая локально сервиса Б (Python, Flask)?

    @alenov Автор вопроса
    Такое решение в целом приемлемо, но я хотел бы найти способ изолировать тесты от какого-либо внешнего окружения, которое должно быть поднято перед запуском тестов. Проблема в моём случае в том, что обращение к внешнему сервису происходит в декораторе, а не в коде самого теста, где его можно было бы легко мокнуть, например, с помощью responses. Может, есть какое-то решение, которое будет минимально влиять на основную архитектуру? Не очень хочется ставить костыли в виде флага конфигурации типа "test_mode", и перенаправлять запрос в декораторе.
  • Является ли оператор SaaS оператором персональных данных?

    @alenov Автор вопроса
    Это не подходит. Я уже говорил выше: провайдер, у которого я арендую серверы и программное обеспечение, может сделать, не нарушая договор, многое из того, что описано в законе. У него прямой доступ к данным есть. И более того, он делает это постоянно, например, когда переносит данные в резервное хранилище. И его сисадмин может в любое время достать из БД любую запись ПД, о конкретном человеке. Он же от этого не становится оператором ПД! "Может" в данном контексте не равно "Делает", потому что эти действия не входят в условия договора, который провайдер заключает со мной, как с арендатором.

    А что касается
    Имеется в виду именно записи, а не файлы бд, накопители и сервера.

    то мне неясно, какое это имеет значение. Одна запись с персональными данными человека - это ПД, несколько записей, перенесённые в файл - это тоже ПД, несколько таких файлов, сброшенных на резервный сервер в виде zip-архива - и это тоже ПД. Способ их хранения в законе никак не оговорен, а потому значения не имеет.
    И к тому же для моего сервиса ПД - это всего лишь требование к функционалу, который предназначен для решения задачи обработки ПД. Возвращаясь к вышесказанному: компания, производящая автобусы для перевозки пассажиров, не становится перевозчиком пассажиров только потому, что смысл её работы - создать средство (оборудование), обеспечивающее удобную и безопасную перевозку пассажиров.
    Мы с вами можем долго дискутировать, но мне не это нужно. Я хочу узнать, есть ли в законе о ПД такое место, которое конкретно в моём случае проводит чёткую границу между мной и моим клиентом, и между провайдером и мной, в вопросе обработки ПД. Ваши доводы мне пока в этом не помогли, к сожалению. Но тем не менее - спасибо за желание найти истину))
  • Является ли оператор SaaS оператором персональных данных?

    @alenov Автор вопроса
    Алексей Андреев, Постойте, мы с вами, кажется заплутали))
    Ещё раз, с самого начала. Я предлагаю сервис в секторе b2b. Сервис - это просто программное обеспечение, на котором работает мой клиент. Я отвечаю только за то, чтобы этот сервис работал в режиме 24/7, и обеспечивал весь заявленный функционал.
    ВСЁ! НИКАКИХ агентских функций по распространению моего сервиса я на своих клиентов не возлагаю. Мои услуги - это техническая поддержка работы сервиса, и мой клиент не продаёт мои услуги своим клиентам. Он продаёт им товары, не имеющие к моему сервису ровно никакого отношения. И по ходу он собирает со своих клиентов ПД.

    Вообще, здесь, как у нас это обычно бывает в законодательстве, явная недоработка. Вот например, провайдер, о котором я упомянул. Я специально задавал вопрос своему провайдеру: Если я на своём сайте буду хранить ПД своих посетителей, вы как провайдер будете являться оператором ПД? Они мне ответили - однозначно нет! Но если обратиться к закону, к тому пункту, который вы привели, то всё не так однозначно. Ведь данные фактически храню не я, а провайдер, на серверах, которые принадлежат ему, и к которым он имеет прямой доступ. К тому же он выполняет ежедневное резервное копирование всего, что есть на сайте, перенося это в резервные хранилища. Но я никогда не видел на чьём-либо интернет-ресурсе, где я оставляю свои персональные данные, трёхстороннего договора, где одной из сторон был бы провайдер, у которого он "хостится". Или двустороннего договора, где бы ресурс говорил мне, что он передаёт мои персональные данные для обработки третьему лицу, под которым подразумевается именно провайдер.
    Т.е. есть сайт продавца зимних шапочек, который собирает с покупателей их ПД, и есть провайдер, который обеспечивает техническую сторону, и в целом очевидно, что провайдер не является оператором ПД. А это значит, что есть граница, на которой закон о ПД перестаёт действовать для провайдера. Так вот где она, эта граница?
  • Является ли оператор SaaS оператором персональных данных?

    @alenov Автор вопроса
    Алексей Андреев,
    Дело в том, что я (как SaaS сервис), не заключаю никаких договоров с клиентами моих клиентов, т.е. с частными лицами, ПД которых хранит мой клиент. Если я не ошибаюсь, сама схема использования SaaS не требует законодательно заключать трёхсторонний договор. И таким образом, я не вижу причин как-то связывать себя обязательствами по обработке ПД.
    Более того, в договоре оферты, который заключается между SaaS сервисом и клиентом (его статус как обработчика ПД сомнений не вызывает) есть отдельный пункт, в котором написано:
    Исполнитель не является оператором персональных данных. Исполнитель предоставляет Заказчику программное обеспечение Сервиса как инструмент для обработки персональных данных клиентов Заказчика и не берёт на себя никаких обязательств по самостоятельной обработке персональных данных, которые Заказчик собирает, хранит и обрабатывает с помощью Сервиса.

    В вашем случае есть три лица учавствующих в доворе клиет/сотрудник вашего клиента(предоставляет свои ПД), ваш клиент и вы.
    Ваш клиент является агентом, он распространяет ваши услуги, не важно, что конечный клиент этого не знает.
    Что прописано у вас в договоре оферте на сайте?
    Вы и ваш клиент в описываемой вами схеме являетесь операторами ПД.

    Это какая-то другая схема, не моя. У меня нет агентов, распространяющих мои услуги, т.к. мои услуги - это предоставление программного комплекса для обеспечения бизнеса моего клиента. Мой клиент не распространяет мой комплекс (сервис), и не даёт его конечному лицу в пользование.
  • Является ли оператор SaaS оператором персональных данных?

    @alenov Автор вопроса
    Алексей Андреев Ну и туда же: значит, провайдер, который даёт мне сервера и ПО, установленное на них, в аренду, чтобы я мог установить на них свой сервис, тоже является оператором ПД? Ну и прицепом - средством массовой информации, иноагентом, да и ещё бог знает кем - у него на серверах много всякого народу крутят свои сервисы. А провайдер всю их инфу хранит у себя на серверах!
    Мне хотелось бы какого-то внятного объяснения, на законных основаниях, которое позволит апеллировать к нему в случае предъявления претензий. Ну и примеры, если кто-то их имеет.
    Но в любом случае - спасибо за ваш отзыв!
  • Является ли оператор SaaS оператором персональных данных?

    @alenov Автор вопроса
    Но я не совершаю действий, которые вы описали! Их совершает мой клиент, который работает в системе. А я - лишь поддерживаю её техническое состояние и развитие. Если следовать вашей логике, то лизинговую компанию, сдавшую автобус в лизинг автоперевозчику, можно назвать автоперевозчиком и потребовать с неё лицензию, ну и всё, что требуется от автоперевозчика! Это же абсурд!
  • На что расходуется время http-запроса?

    @alenov Автор вопроса
    Dr. Bacon, В общем, на производственной среде поставил в параллель со своим сайтом такой же, и навесил его на gunicorn. Условия совпадают идеально. Никакой разницы в итоге по производительности между gunicorn и uwsgi не обнаружилось. Та же потеря 3/4 времени ответа от сервера, которая приходится на ... что?
    Так и не понял, кто у кого в очереди стоит))
  • Что нужно для того, чтобы сделать чат-бота для Telegram на Python?

    Что должен делать этот бот? На всякий случай, Телеграм и сам по себе чат))
  • На что расходуется время http-запроса?

    @alenov Автор вопроса
    Dr. Bacon, Попробую сейчас в принципе заменить uwsgi на что-то другое. Например, на gunicorn.
  • На что расходуется время http-запроса?

    @alenov Автор вопроса
    Насчёт очередей. Вот сегодня выбрал время, когда активность на сервере минимальная (до 5 запросов в МИНУТУ), и получил тот же результат. Т.е. странное дело - очередей быть не должно, но время upstream_response_time не меняется, и такое же огромное, т.е. на запрос, вытягивающий из БД несколько записей за время ~0.05 сек, накручивается сверху 0.7 сек.
    Пользую uwsgitop, кстати. И он тоже не показывает особой активности.