0
我有使與SQS郵件到我的本地數據庫的簡單路徑:示例語法油門
class DlrSqsToDb extends RouteBuilder {
"""aws-sqs://123467890/test-queue?amazonSQSClient=%23awsSqsClient&amazonSQSEndpoint=https://sqs.eu-west-1.amazonaws.com""" ==> {
setHeader("dlr_body", body)
setHeader("msgid", "someid")
to("sql:insert into camel_test (msgid, dlr_body) VALUES (:#msgid,:#dlr_body)?dataSource=dataSource")
}
}
我想扼殺這讓SQS處理峯值,但讓我的本地數據庫負載是有限的。我可以做,例如延遲(),而不是油門():
....
"""aws-sqs://123467890/test-queue?amazonSQSClient=%23awsSqsClient&amazonSQSEndpoint=https://sqs.eu-west-1.amazonaws.com""" ==> {
delay(3000)
....
的作品,但
....
"""aws-sqs://123467890/test-queue?amazonSQSClient=%23awsSqsClient&amazonSQSEndpoint=https://sqs.eu-west-1.amazonaws.com""" ==> {
throttle(1)
....
不能編譯:
[error] found : Int(1)
[error] required: org.apache.camel.scala.Frequency
[error] throttle(1)
和
....
"""aws-sqs://123467890/test-queue?amazonSQSClient=%23awsSqsClient&amazonSQSEndpoint=https://sqs.eu-west-1.amazonaws.com""" ==> {
throttle(new org.apache.camel.scala.Frequency(1,3000))
....
編譯但崩潰的錯誤:
.... because of Definition has no children on Throttle[{1} request per 3000 millis -> []]
在scala中使用節流閥的正確語法是什麼?
它導致正確的解決方案,謝謝! – FelixHJ