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