You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Heroku上为已部署的Flask应用运行后台Python脚本?

在Heroku上同时运行Flask应用和后台爬取脚本的方案

完全可以实现,核心是利用Heroku的多进程管理机制,具体操作如下:

  • 编写Procfile定义进程
    在项目根目录创建一个无后缀的Procfile文件,分别定义Flask的web进程和爬取脚本的worker进程:

    web: gunicorn your_flask_entry:app
    worker: python your_scraper_script.py
    

    替换your_flask_entry为你的Flask入口文件名(比如入口是app.py就写app),your_scraper_script.py为你的爬取脚本文件名。

  • 启动worker进程
    部署项目后,Heroku默认只会启动web进程,你需要手动开启worker实例:

    heroku ps:scale worker=1
    

    这条命令会启动1个worker进程和web进程同时运行,你可以通过heroku ps查看所有运行中的进程状态。

  • 注意文件系统的坑
    Heroku的文件系统是临时的,任何进程重启(比如自动扩容、部署更新)后,本地存储的文件都会被清空。如果你的爬取数据需要持久化给Flask应用调用,别存在本地,改用数据库(比如Heroku PostgreSQL)、Redis或者对象存储来存数据。

  • 可选:定时执行爬取
    如果你的爬取不需要持续后台运行,只是定期执行,可以用Heroku Scheduler组件,设置定时任务来触发爬取脚本,这样能节省worker资源。

内容的提问来源于stack exchange,提问作者cmw

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 01:15:11