AWS SDK是否提供基于事件的体系结构?

时间:2016-12-09 10:50:31

标签: aws-sdk aws-sdk-ruby

我正在使用this链接作为启动实例的教程。以下是我的代码,

instance = resource.create_instances.first
sleep 10 until instance.state.name == "running"
//Do something once instance is up and running

上面的代码启动一个实例并在循环中等待,直到实例状态正在运行。一旦它运行我就做了一些处理。正如您所看到的,我正在等待实例准备好才能进行处理。这是一个坏主意,因为我每隔10秒轮询一次AWS(轮询模型)。

AWS SDK是否内置了一些内容,当实例更改状态时会触发事件(类似推模型)?如果是的话,请你分享一下这样做的方法吗?

1 个答案:

答案 0 :(得分:1)

SDK确实提供了一项功能,但我不确定它使用的是什么型号(推或拉)。它可能拉,但我不确定。无论型号如何,这都是推荐的等待方式。

begin
  instance.wait_until(max_attempts:10, delay:10) {|instance|
    instance.state.name == 'running'
  }
rescue Aws::Waiters::Errors::WaiterFailed
  # resource did not enter the desired state in time
end

此处有更多详情: http://docs.aws.amazon.com/sdkforruby/api/Aws/Resources/Resource.html#wait_until-instance_method