Bro*_*rod 5 java amazon-sqs amazon-web-services spring-cloud
我正在尝试使用 Spring Cloud 将一批项目发送到 Amazon SQS。我可以发送单个项目。但是,将它发送到队列的时间往往会乘以我发送的项目数。我基本上遵循参考文档的示例
在AWS 文档中,您可以一次发送最多 10 个项目的批次。所以我的问题是 QueueMessagingTemplate 或其他 Spring Cloud 类是否允许您这样做?
此代码片段显示了我想要做什么。我不想将项目作为对象发送,因为我希望每个项目都单独放置在队列中。
@Service
@EnableConfigurationProperties(SqsConfigMappingProperties.class)
public class SqsServiceImpl implements SqsService {
@Autowired
String queueName;
@Autowired
QueueMessagingTemplate queueMessagingTemplate;
@Override
public void sendSqsMessage(List items) {
//Can't really send a batch size here
int batchSize = 10;
queueMessagingTemplate.convertAndSend(queueName, items, 10);
}
}
Run Code Online (Sandbox Code Playgroud)
中没有专门的 convertAndSend()方法或类似的方法QueueMessagingTemplate。事实上这些QueueMessagingTemplate并没有定义这些方法,它只是继承了它们。我会使用类似于集合的包装类之类的东西,将其payload作为convertAndSend().
但还有更多。
QueueMessagingTemplate的源代码位于此存储库中。此存储库已存档(支持此新存储库)并且不再维护。在新的存储库中QueueMessagingTemplate被删除,取而代之的是SqsTemplate,并且SqsTemplate有一个sendManyAsync()方法,例如允许发送一批消息。
因此,对于开发人员来说,迁移到新的库确实更好,因为它QueueMessagingTemplate不再被维护(甚至不存在),并且SqsTemplate完全具有您想要的内容。
希望它有帮助,祝你有美好的一天:)
| 归档时间: |
|
| 查看次数: |
1756 次 |
| 最近记录: |