Аватар для artem78
6 / 8 / 2
Регистрация: 20.12.2012
Сообщений: 729

Периодически вываливается Error 500 в Flask

18.01.2018, 14:34. Показов 1153. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть небольшой веб сервис на flask, генерирующий rss ленту по данным из mysql базы. Примерно через сутки работы он начинает выдавать 500-ю ошибку. После перезапуска вручную, сутки полёт нормально, потом опять отключается. Работает на связке Nginx + Gunicorn. В /var/nginx/error.log ошибка не пишется. Если в демоне, запускающим gunicorn, добавить параметр --error-logfile, то сервис перестаёт звпускаться и не выводит никакие ошибки ни в консоль, ни в syslog.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/usr/bin/env python3
 
from db import session
from grabber import Job
 
from flask import Flask, request, Response
from werkzeug.contrib.fixers import ProxyFix
 
import PyRSS2Gen
import datetime
import logging
 
from sqlalchemy import desc, or_
 
import config
 
 
app = Flask(__name__)
app.debug = config.debug
app.wsgi_app = ProxyFix(app.wsgi_app)
 
 
@app.route('/rss')
def rss():
    new_feed_items = []
 
    # Filters
    filters = []
 
    keywords_filters = []
    keywords = config.post_filters.get('keywords', None)
    if keywords:
        for keyword in keywords:
            keywords_filters.append(Job.title.ilike('%' + keyword.lower() + '%'))
            keywords_filters.append(Job.description.ilike('%' + keyword.lower() + '%'))
    filters.append(or_(*keywords_filters))
 
    jobs = session.query(Job).filter(*filters).order_by(desc(Job.published)).limit(config.items_in_feed).all()
    for job in jobs:
        new_feed_items.append(PyRSS2Gen.RSSItem(
            title = job.title,
            link = job.url,
            description = job.description,
            guid = job.url,
            pubDate = job.published
        ))
 
    # Формируем новую RSS ленту
    new_feed = PyRSS2Gen.RSS2(
        title = 'Freelance jobs',
        link = '',
        description = '',
        generator = 'Freelance Grabber',
        items = new_feed_items
    )
 
    return Response(new_feed.to_xml("utf-8"), mimetype='text/xml')
 
 
 
if __name__ == '__main__':
    app.run()
Файл настроек Nginx:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
server {
    listen 8080;
    server_name mysite;
         
    root /home/user/python/freelance-grabber/;
              
    access_log off;
    #error_log /dev/null crit;
    error_log /var/log/nginx/error.log;
                       
    location / {
        proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        if (!-f $request_filename) {
            proxy_pass http://127.0.0.1:8000;
            break;
        }
    }
}
Сервис для запуска gunicorn в Upstart:
Code
1
2
3
4
5
6
7
8
9
10
11
12
description "Freelance Grabber"
 
start on (filesystem)
stop on runlevel [016]
 
respawn
setuid nobody
setgid nogroup
chdir /home/user/python/freelance-grabber
 
#exec  gunicorn --error-logfile=log.txt web:app   # Так не работает
exec gunicorn web:app
С чем может быть связана ошибка и как включить её вывод на экран или в лог? Спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.01.2018, 14:34
Ответы с готовыми решениями:

Глючит nforce 630i: периодически при загрузке windows вываливается в синий экран
Всем доброго дня. Есть проблема с материнской платой на чипсете nforce 630i: периодически при загрузке windows вываливается в синий экран,...

Система вываливается в Unlnown Hard Error
Всем здравствуйте! Можете сказать, что с хардом? Не пришел ли ему полярный лис? Или пора его менять? Меня интересует, что за дикие значения...

При закрытии вываливается из-за чеккбокса (Error 424)
Подскажіте, пожалўйста, в чем может быть проблема. Прі закрытіі экселя вывалівается Runtime Error 424: Object requied. Вывалівается на вот...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.01.2018, 14:34
Помогаю со студенческими работами здесь

Создание динамического массива вываливается с ошибкой [Error] CreatingDiet.pas(248): Incompatible types
Всем привет, в общем мне нужно создать массив с номерами рецептов, но так чтобы они по максимуму не повторялись, т.е. на 10 дней раскидать...

При попытке обновить запись в базе данных вываливается ошибка Syntax Error из-за пробелов в тексте.
В Textarea загружается из базы данных(MSSQL server) текст с пробелами, где этот текст может изменяться пользователем. При переходе на...

HTTP Error 500.19 - Internal Server Error - Read permisions
http://ScrnSht.com/nxevbh думаю суть проблемы понятна попгуглив я накопал что надо бы поставить read permision для IIS_IUSRS ...

HTTP Error 500.19 - Internal Server Error IIS
Доброго дня! Помогите разобраться. До того как переустановил сервер всё работало, после переустановки стал выводить ошибку, установил...

Network Error: 500 Internal Server Error
на локальной тачке на денвере все работает гут, а вот закидываю на сервер и ошибка 500. в чем косяк7 <?php ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru