spring-cloud-task - 使用 DeployerPartitionHandler 动态更改 maxWorkers
问题描述
基于没有。使用 DeployerPartitionHandler 时,返回的分区的 maxWorkers 可以动态更改(在运行时)
问候, 巴鲁
更新 请找到我的用例。批处理从正常工作日开始,maxWorkers 为“4”,分区返回为 40,但负载突然增加,批处理的特定运行返回正常分区 (160) 的 4 倍。在这里我如何增加 maxWorkers(比如 16)。此外,如果我总是以 maxWorkers 的非常高的限制(比如 16)开始批处理,我相信正常负载的工人也可以达到 16,因为每个分区都由工人处理,对吗?
解决方案
他们不能。周围的想法maxWorkers
实际上是设置应用程序不应超过的高水位线。工人数量的动态方面确实预计来自分区的数量。如果您在问题中提供有关特定用例的更多详细信息,我们可以看看这是否仍然有意义。
根据用例更新:
在您的特定用例中,您需要有一个侦听器(可能是 a JobExecutionListener
)来确定最大值应该是多少。你所描述的是你想要一个“常规最大值”和一个“高负载最大值”。侦听器将在相关步骤之前运行并在ExecutionContext
. 然后,如果是步骤范围的,您可以在该步骤执行时DeployerPartitionHandler
将值从注入到处理程序中。ExecutionContext
推荐阅读
- python - Python嵌套/递归/树排序与熊猫
- amazon-web-services - Terraform route53 批量记录
- hibernate - 使用 @OneToOne 映射但外键不会使约束失败或不工作
- python - 在 Keras 中不断分配具有不同常量张量的变量时会发生什么?
- php - PHP Codeigniter Htaccess。删除控制器名称和 index.php 并重写 url
- javascript - 在回调中访问全局定义的变量?
- asp.net-core - 无法连接到 .NET Core 3.x 中的数据库(appsettings.json 中的连接字符串)
- c# - 如何在 xamarin 表单中正确缩放条目和按钮到手机
- java - 无法从 Firestore 读取自定义对象 - 为什么?
- javascript - 如何从javascript中的键值对获取最大值键名