向Heroku添加Worker Dyno进程

时间:2016-07-10 16:06:48

标签: python heroku flask worker heroku-postgres

我是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)

0 个答案:

没有答案