Превышение скорости в опросе workflow_execution
В настоящее время я пытаюсь изменить плагин для публикации метрик для новой реликвии через AWS. Мне успешно удалось сделать плагин публиковать метрики от SWF до новой реликвии (не изначально в плагине), но столкнулся с проблемой, если программа работает слишком долго.
Когда программа работает в течение 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 для SWF => ссылка
1 ответ
Вероятно, проблема заключается в том, что вы создаете большое количество выполнений рабочих процессов, и каждая итерация цикла в workflow_executions вызывает поиск, который в конечном итоге превышает ваш предел скорости.
Это также может стать немного дороже, поэтому будьте осторожны.
Непонятно, что вы на самом деле пытаетесь сделать, поэтому я не могу сказать вам, как это исправить, если вы не разместите весь свой код (или части вокруг вызовов SWF).
Вы можете увидеть здесь:
Чтобы был сделан вызов SWF для каждого рабочего процесса в коллекции.