PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

uWSGI, Flask, sqlalchemy и postgres:SSL грешка:неуспешно декриптиране или лош запис mac

Проблемът се оказа разклонение на uwsgi.

Когато работите с множество процеси с главен процес, uwsgi инициализира приложението в главния процес и след това копира приложението към всеки работен процес. Проблемът е, че ако отворите връзка с база данни, когато инициализирате приложението си, тогава имате няколко процеса, споделящи една и съща връзка, което причинява грешката по-горе.

Решението е да зададете lazy опция за конфигурация за uwsgi, която принуждава пълно зареждане на приложението във всеки процес:

lazy

Задайте мързелив режим (зареждайте приложения в работни места вместо в master).

Тази опция може да има последици за използването на паметта, тъй като семантиката на копиране при запис не може да се използва. Когато е активиран мързелив, само работниците ще бъдат презаредени от сигналите за презареждане на uWSGI; господарят ще остане жив. Като такива промените в конфигурацията на uWSGI не се улавят при презареждане от главния.

Има и lazy-apps опция:

lazy-apps

Зареждайте приложения във всеки работник вместо в главния.

Тази опция може да има последици за използването на паметта, тъй като семантиката на копиране при запис не може да се използва. За разлика от мързеливия, това засяга само начина, по който се зареждат приложенията, а не поведението на главния при презареждане.

Тази конфигурация на uwsgi свърши работа за мен:

[uwsgi]
socket = /tmp/my_app.sock
logto = /var/log/my_app.log
plugins = python3
virtualenv =  /path/to/my/venv
pythonpath = /path/to/my/app
wsgi-file = /path/to/my/app/application.py
callable = app
max-requests = 1000
chmod-socket = 666
chown-socket = www-data:www-data
master = true
processes = 2
no-orphans = true
log-date = true
uid = www-data
gid = www-data

# the fix
lazy = true
lazy-apps = true


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL компресирани архивни регистрационни файлове в Windows

  2. PSQLException:ResultSet не е позициониран правилно, може би трябва да се обадите следващия

  3. Използване на текущото време в UTC като стойност по подразбиране в PostgreSQL

  4. PostgreSQL:Променете OWNER на всички таблици едновременно в PostgreSQL

  5. Как да прочетем съдържанието на .sql файл в R скрипт, за да изпълним заявка?