如何基于来自SQS的消息扩展Elasticbeanstalk应用程序工作者?

时间:2016-10-04 14:13:43

标签: scala amazon-web-services elastic-beanstalk amazon-sqs

我有一个Scala应用程序可以根据customer_id进行一些繁重的计算,我将客户ID放在SQS(Amazon Simple Queue Service)中,在ElastikBeansTalk上配置的应用程序使用来自SQS的msg。

我想根据来自SQS的消息扩展我的应用程序,问题是我的应用程序作为HTTP服务器运行,并在完成计算后返回200个代码,最少需要15分钟。

SQS最大超时为60秒,所以在此之后,所有消息都以死信队列结束,我尝试在完成计算之前发送200响应代码,但它从队列接收另一条消息并启动另一个进程。 / p>

有任何解决方案吗?

编辑:我的工作人员配置示例: enter image description here

提前谢谢!

2 个答案:

答案 0 :(得分:1)

最长VisibilityTimeout为12小时。所以你可以把它放到30分钟,这应该涵盖你的情况。

答案 1 :(得分:0)

嗯,问题不是来自Akka HTTP Server或来自SQS,它来自默认的nginx conf。通过编辑默认的proxy_read_timeout 60s来解决问题。