【问题标题】:MassTransit SQS polling frequencyMassTransit SQS 轮询频率
【发布时间】:2021-06-01 12:48:53
【问题描述】:

有关消费者的文件称,这辆 MassTransit 遵循好莱坞原则,其中规定:“不要打电话给我们,我们会打电话给你。”但至少对于亚马逊的 SQS,这根本不是真的。 MassTransit 确实会轮询 Amazon SQS,但只是对消费者应用程序隐藏了它。我通过查看我创建的 SQS 队列 => 监控选项卡并检查“空接收数”发现了这一点。我发现我很快就接到了数千个电话,这远非理想,因为它们可以收费。

AWS 解决方案是使用“接收消息等待时间”属性调整队列的轮询频率,这意味着您有一种称为长轮询的东西。虽然我可以在 AWS 中手动设置它,但我宁愿在配置消费者时这样做。 AWS SDK 建议使用一个名为“ReceiveMessageWaitTimeSeconds”的属性,但我似乎无法设置它。如何在 MassTransit 中设置轮询频率?我可以在配置中的几个地方看到 WaitTimeSeconds,但根本没有记录。

玩了一会儿,这段代码似乎做了我想做的事,但我不确定它是否正确。有没有更好的办法?

 var busControl = Bus.Factory.CreateUsingAmazonSqs(cfg =>
 {
  cfg.Host("eu-west-2", h =>
  {
    h.AccessKey("************");
    h.SecretKey("***SECRET***");
  });

  //Specify a SQS message queue name
  cfg.ReceiveEndpoint("my-queue", e =>
  {
     // create a consumer to read message from q
     e.Consumer<EventConsumer>();
     e.WaitTimeSeconds = 18;
     //etc

【问题讨论】:

    标签: amazon-web-services amazon-sqs masstransit


    【解决方案1】:

    您可以将WaitTimeSeconds 设置为更长的值以降低轮询频率。 SQS 没有 push,它总是由 API 调用组成。

    至于好莱坞原则,指的是大众运输,而不是经纪人要求的运输交互。

    【讨论】:

      猜你喜欢
      • 2021-11-28
      • 1970-01-01
      • 2022-08-08
      • 2011-04-20
      • 2021-04-01
      • 1970-01-01
      • 2021-06-07
      • 2022-01-13
      • 1970-01-01
      相关资源
      最近更新 更多