我正在将Heroku用于运行在daphne
服务器上的Django项目。而且我还有一个芹菜工人可以并行运行任务以减少响应时间。
下面是我的Procfile
web: daphne myproject.asgi:application --port $PORT --bind 0.0.0.0 -v 0
worker: celery worker -A myproject --loglevel=debug --concurrency=8
场景::我需要使用最近24个月的余额数据生成对帐单。
为此,我有两个端点
- 获得平衡-获取24个月的余额(每个月都被视为一项任务,并且使用celery worker运行24项任务)
- GENERATE STATEMENT-生成24个月数据的语句(此API在GET BALANCE API之后立即调用)
如果我为一家公司进行测试,则第一个API需要15到20秒。但是,如果我测试了2个或更多公司(使用负载测试),那么它会单独通过第一个公司,而其他公司由于 HEROKU 30秒超时问题
而失败例如5家公司:
我认为问题是由于JOB排队和HEROKU超时引起的。但是在作业完成之前,我无法通过 GET BALANCE 呼叫将响应发送给客户端,因为下一秒我需要生成该语句。
此外,我尝试通过增加员工人数限制来进行尝试,但该限制最多可用于2到3家公司。
请以某种方式建议我,这样我就可以摆脱超时问题