Ruby 工作流执行轮询中的速率超过

Ruby 工作流执行轮询中的速率超过,ruby,amazon-web-services,amazon-swf,newrelic-platform,Ruby,Amazon Web Services,Amazon Swf,Newrelic Platform,我目前正试图修改一个用于通过AWS向new relic发布度量的文件。我已经成功地将swf的插件发布到NewRelic(最初不是在插件中),但是如果程序运行太长,就会遇到问题 当程序运行大约10分钟时,我得到以下错误: Error occurred in poll cycle: Rate exceeded 我相信这是来自我对工作流执行的投票swf domain.workflow_executions.each do |execution| starttime = execut

我目前正试图修改一个用于通过AWS向new relic发布度量的文件。我已经成功地将swf的插件发布到NewRelic(最初不是在插件中),但是如果程序运行太长,就会遇到问题

当程序运行大约10分钟时,我得到以下错误:

Error occurred in poll cycle: Rate exceeded
我相信这是来自我对工作流执行的投票swf

domain.workflow_executions.each do |execution|

        starttime = execution.started_at
        endtime = execution.closed_at
        isOpen = execution.open?
        status = execution.status

        if endtime != nil
          running_workflow_runtime_total += (endtime - starttime)
          number_of_completed_executions += 1
        end

        if status.to_s == "open"
          openCount = openCount + 1
        elsif status.to_s == "completed"
          completedCount = completedCount + 1
        elsif status.to_s == "failed"
          failedCount = failedCount + 1
        elsif status.to_s == "timed_out"
          timed_outCount = timed_outCount + 1
        end

      end
每60秒在轮询周期中调用一次

有没有办法设定投票率?或者以其他方式执行工作流


谢谢,这里有一个指向ruby sdk for swf=>

的链接。问题很可能是您正在创建大量的工作流执行,并且工作流执行中循环的每次迭代都会导致查找,最终超过您的速率限制

这也可能会变得有点贵,所以要小心

现在还不清楚您真正想做什么,所以我无法告诉您如何修复它,除非您发布所有代码(或与SWF调用相关的部分)

你可以在这里看到:


对于集合中的每个工作流,都会向SWF打电话。

我们实际上没有什么工作可以做,因为您只给了我们循环的最开始部分。有关我们需要帮助您的信息,请参阅。感谢您的评论和建议。我更新了代码,让我知道这是否更有帮助。但我认为我不会在这个周期中创建更多的工作流执行,只会查找当前正在运行的工作流执行。这也是我的代码中唯一一个使用上述工作流执行的部分。我正在查找的执行次数是否直接考虑到我的限制?或者限制是基于我正在进行的广泛查找的总数吗?它不会一次将它们全部提取出来。我猜通过{}中代码体的每次迭代都会导致调用SWF来获取下一次执行的数据。它是执行次数乘以调用domain.workflow\u executions.each的次数