我目前正在尝试修改plugin,以便通过AWS将指标发布到新文件。我已成功设法将插件从swf发布到新的relic(最初不在插件中),但是如果程序运行时间过长则遇到问题。
当程序运行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秒在一个轮询周期中调用它
有没有办法设置轮询率?或者另一种获得工作流程执行的方法?
谢谢,这是指向swf =>的ruby sdk的链接link
答案 0 :(得分:2)
问题很可能是您正在创建大量工作流程执行,并且每次在workflow_executions中循环的迭代都会导致查找,最终超出了您的速率限制。
这也可能有点贵,所以要小心。
目前尚不清楚你真正想要做什么,所以我不能告诉你如何解决它,除非你发布所有代码(或调用SWF的部分)。
你可以在这里看到:
为集合中的每个工作流程调用SWF。