Hystrix 线程池队列无法正常工作
Hystrix Threadpool Queue not working properly
我正在使用 Hystrix 库来处理网络调用。这就是我用于线程池配置的内容
HystrixThreadPoolProperties.Setter threadPropSetter = HystrixThreadPoolProperties.Setter();
threadPropSetter.withCoreSize(100);
threadPropSetter.withMaxQueueSize(1000);
我正在使用通用的 HytrixCommandKey 和 HytrixThreadPoolKey 创建 1000 个 HytrixCommand 对象的负载。但是线程池在服务前 100 个线程后执行回退逻辑,而不是使用线程池队列。这可以通过将线程池、coreSize 设置为 1000 来解决。但是我使用 java,将 coreSize 设置为 1000 将产生 1000 个线程,这会消耗大量系统资源。
任何人都可以为此提供解决方案,以便线程池队列实际上可以对线程进行排队,而不是仅仅恢复到回退逻辑吗?
刚刚在我的主要方法中添加了一个 Thread.sleep(),这样 JVM 就不会在命令创建和排队后终止。现在工作正常。
我正在使用 Hystrix 库来处理网络调用。这就是我用于线程池配置的内容
HystrixThreadPoolProperties.Setter threadPropSetter = HystrixThreadPoolProperties.Setter();
threadPropSetter.withCoreSize(100);
threadPropSetter.withMaxQueueSize(1000);
我正在使用通用的 HytrixCommandKey 和 HytrixThreadPoolKey 创建 1000 个 HytrixCommand 对象的负载。但是线程池在服务前 100 个线程后执行回退逻辑,而不是使用线程池队列。这可以通过将线程池、coreSize 设置为 1000 来解决。但是我使用 java,将 coreSize 设置为 1000 将产生 1000 个线程,这会消耗大量系统资源。
任何人都可以为此提供解决方案,以便线程池队列实际上可以对线程进行排队,而不是仅仅恢复到回退逻辑吗?
刚刚在我的主要方法中添加了一个 Thread.sleep(),这样 JVM 就不会在命令创建和排队后终止。现在工作正常。