首页 > 解决方案 > Flask:如何防止 Heroku 上出现 503(服务不可用)错误?

问题描述

我有一个 Heroku 应用程序来启动一个 Scrapy 蜘蛛。启动后,过一会,浏览器控制台出现错误503(服务不可用)。从蜘蛛接收到数据后刷新页面的脚本不起作用。如何解决?

js:

$.post('/wellness', {'specialty': specialty, 'state': state, 'city': city}, (res) => { 
      $(location).attr('href', 'http://127.0.0.1:5000/wellness')
    });

烧瓶:

if request.method == 'POST':
    specialty = request.form.getlist('specialty[]')
    state = request.form.getlist('state[]')
    city = request.form.getlist('city[]')

    settings = ''
    with open(file_json, 'r') as f:
        for line in f.read():
            settings += line

    settings = json.loads(settings)
    settings['specialty'] = specialty
    settings['state'] = state
    settings['city'] = city

    with open(file_json, 'w') as f:
        f.write(json.dumps(settings, indent=4))

    process = subprocess.Popen('python spiders/' + file_py, shell=True)
    process.wait()

return render_template(file_html)

标签: javascriptflaskheroku

解决方案


我不确定是什么引发了这个问题,但您可能想测试其中一些方法来运行蜘蛛:如何集成 Flask 和 Scrapy?

我个人建议这两个选项:

503 错误一般会在服务器宕机时发生。运行服务器或尝试运行蜘蛛可能有问题。


推荐阅读