1
我有以下情形:亚马逊SQS消息队列
- 用于需要进行处理,发送包含工作说明一个消息给一个Amazon SQS消息队列中的作业
- 我有具有不同的过程做的工作
需要满足以下条件:
- 如果一个进程失败要完成一项工作(可能是因为它在崩溃时运行的服务器),则该作业必须再次可用于其他进程。
- 当一个工作正在进行时,具有相同描述的其他工作必须等到第一个工作完成或达到其超时。
- 根据消息队列的长度,系统应该很容易扩展。
为了确保(1),我的第一个想法是使用Amazon SQS队列提供的消息锁定功能,但是如何确保(2)呢?将流程分配给工作描述将是一种选择,但(3)会更困难。
当你说“其他有相同描述的工作”时,你是什么意思?我们可能需要更多的细节来帮助。例如,如果我们正在进行图像大小调整,那么将系统限制为一次只能执行一次调整大小操作是没有意义的。 – Jeff
我认为这个问题会更清晰一些,但这里有一些细节:它是关于时间序列(一组历史数据)的计算模式。具有“相同描述”的作业意味着他们必须计算相同时间序列的模式。每当时间序列的历史数据更新时,通过向队列发送相应的消息来触发模式重新计算。 –