我是Heroku的新手,当我上传需要超过30秒才能处理的大文件时,我的应用程序开始出现H13错误(超时)。
所以,我正在尝试按照本指南使用工作人员dynos:https://devcenter.heroku.com/articles/python-rq
到目前为止,我已经安装了rq,创建了worker.py(从指南中复制),并为rq和worker添加了导入代码。
我有一个看起来像这样的python文件:
@app.route('/')
def main():
return render_template('main.html')
@app.route('/upload', methods=['POST'])
def upload():
# Code that uploads file and adds it to postgresql table
return render_template('reports.html', reports=reports)
@app.route('/reports/<string:report_uuid>')
def report(report_uuid):
# Code that creates a report based on the sql table
return render_template('report.html', data=data)
我的问题是我在哪里添加指南中的这一行:
result = q.enqueue(count_words_at_url, 'http://heroku.com')
我不认为我理解调用python函数的是什么。 @ app.route('/')是否意味着当访问页面'/'时,函数main()应该运行吗?那么我会在其他地方声明这些函数,然后添加一行,如:
def upload():
# Code that uploads file and adds it to postgresql table
return render_template('reports.html', reports=reports)
@app.route('/upload', methods=['POST'])
q.enque(upload)