Приложение Django зависает в Google App Engine - PullRequest
0 голосов
/ 25 мая 2019

У меня возникли проблемы с приложением Django, развернутым в Google App Engine.

Я до сих пор не знаю, как воспроизвести проблему.

Кажется, что приложение случайно зависает.Он просто перестает отвечать (в это время журнал не создается), и, если я захожу на какую-либо страницу приложения, я получаю эту ошибку:

Ошибка: ошибка сервера

Сервер обнаружил ошибку и не смог выполнить ваш запрос.

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

В журналах ошибок не отображаетсяи единственное странное предупреждение, которое я обнаружил, это:

ПРЕДУПРЕЖДЕНИЕ OpenBLAS - не удалось определить размер кэша L2 в этой системе, предполагая 256k

У меня нетлюбые проблемы при запуске приложения на моем компьютере с Ubuntu.

Я использую Django 2.1.5 с Python 3.7, и Django подключается к экземпляру MySQL (в Google Cloud SQL).

Дополнительная информация:

Файл app.yaml является очень простым и взят из официального примера :

# [START django_app]
runtime: python37
service: backend

handlers:
# This configures Google App Engine to serve the files in the app's static
# directory.
- url: /static
  static_dir: static/

# This handler routes all requests not caught above to your main app. It is
# required when static routes are defined, but can be omitted (along with
# the entire handlers section) when there are no static files defined.
- url: /.*
  script: auto

# [END django_app]

Выдержка из конфигурации Django:

INSTALLED_APPS = [
    ...
    'rest_framework',
    'rest_framework_filters',
    'django_rest_passwordreset',
    'django_filters',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': [
        'rest_framework.permissions.AllowAny',
    ],
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework_simplejwt.authentication.JWTAuthentication',
    ],
    'DEFAULT_FILTER_BACKENDS': [
        'rest_framework_filters.backends.RestFrameworkFilterBackend',
        'django_filters.rest_framework.DjangoFilterBackend',
    ],
}

SIMPLE_JWT = {
    'ACCESS_TOKEN_LIFETIME': timedelta(minutes=60),
    'REFRESH_TOKEN_LIFETIME': timedelta(hours=10),
    'ROTATE_REFRESH_TOKENS': True,
    'ALGORITHM': 'HS256',
    'SIGNING_KEY': "XXXXXX",
}

Стоит отметить, что есть обычайm установленных приложений, которые обращаются к базе данных MySQL как с помощью обычного Django ORM, так и напрямую запрашивая ряд различных баз данных с использованием библиотеки pymysql .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...