Форум программистов, компьютерный форум, киберфорум
Python: Flask
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
6 / 8 / 2
Регистрация: 20.12.2012
Сообщений: 729
1

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

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

Author24 — интернет-сервис помощи студентам
Есть небольшой веб сервис на 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:
Код
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:
Код
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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.01.2018, 14:34
Ответы с готовыми решениями:

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

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

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

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

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

0
18.01.2018, 14:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.01.2018, 14:34
Помогаю со студенческими работами здесь

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

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

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

ERROR: No matching distribution found for flask
Появилась задача создать веб-приложение на Python сервер/клиент, до этого изучала только азы Python...

При соединени с таблицами VFP из ASP выдается ошибка: HTTP 500.100 - Internal Server Error - ASP error Internet Information Services
Вот кусок моего кода filePath = Server.MapPath('users.dbf'); DSN='Driver={Microsoft Visual...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru