Skip to main content
 首页 » 编程设计

python之Heroku 免费层,用于在一个应用程序中实现不间断的 Web 和工作进程

2025年04月02日42mfrbuaa

我有一个 Python 应用程序,它每分钟 ping 一个 API 并将数据记录到数据库中。我还有一个 Django 网络应用程序,它是显示此数据的客户端(它也不应该空闲,我将在下面解释)。

Heroku 最近再次更改了他们的免费套餐,允许验证帐户每月 1000 小时。我已经验证了我的帐户以利用此功能。我不清楚的是在我的情况下如何计算使用时间。我的 Heroku 应用程序会每月累积约 750 小时,还是在不间断运行后累积 2x750 小时? Procfile 中的两条线是否被视为单独的测功机,因此每条线每月将累积 750 小时?

设置

Procfile: 
worker: python api_crawler.py 
web: gunicorn api_data_client.wsgi --log-file -  

我发现如果 Web 进程在闲置 30 分钟后开始空闲,它也会使工作进程随之关闭。这不是我想要的结果,因为我需要工作进程不间断地运行。阅读一些内容后,我发现“New Relic”监控插件可以帮助防止 Web 进程空闲,这很好,除非我会用完每月 1000 小时。

请您参考如下方法:

procfile 中的每一行都会创建一个单独的 dyno,所以如果你不能让任何一个进程空闲,1000 小时是不够的。 但是,如果您对 web dyno 在 30 分钟不活动后闲置感到满意,并且假设您没有太多的 web 流量,您应该能够让您的工作进程保持 24/7 运行,并且您的 web 进程可能会消耗更少比约每月 250 小时的测功机小时,因此您可以将所有内容都放入 1000 小时的免费套餐中。

当您的网络进程空闲时,Heroku 不应该让您的工作进程空闲。不确定你为什么写你认为是的。