added yml parameters for aws-sqs eproducer executor thread pool size
This commit is contained in:
parent
f2ea1b87d7
commit
b95adb439a
@ -1398,6 +1398,8 @@ queue:
|
|||||||
region: "${TB_QUEUE_AWS_SQS_REGION:YOUR_REGION}"
|
region: "${TB_QUEUE_AWS_SQS_REGION:YOUR_REGION}"
|
||||||
# Number of threads per each AWS SQS queue in consumer
|
# Number of threads per each AWS SQS queue in consumer
|
||||||
threads_per_topic: "${TB_QUEUE_AWS_SQS_THREADS_PER_TOPIC:1}"
|
threads_per_topic: "${TB_QUEUE_AWS_SQS_THREADS_PER_TOPIC:1}"
|
||||||
|
# Thread pool size for aws_sqs queue producer executor provider. Default value equals to AmazonSQSAsyncClient.DEFAULT_THREAD_POOL_SIZE
|
||||||
|
producer_thread_pool_size: "${TB_QUEUE_AWS_SQS_EXECUTOR_THREAD_POOL_SIZE:50}"
|
||||||
queue-properties:
|
queue-properties:
|
||||||
# AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
|
# AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
|
||||||
rule-engine: "${TB_QUEUE_AWS_SQS_RE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
|
rule-engine: "${TB_QUEUE_AWS_SQS_RE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
|
||||||
|
|||||||
@ -43,7 +43,7 @@ public class TbAwsSqsAdmin implements TbQueueAdmin {
|
|||||||
private final AmazonSQS sqsClient;
|
private final AmazonSQS sqsClient;
|
||||||
private final Map<String, String> queues;
|
private final Map<String, String> queues;
|
||||||
@Getter
|
@Getter
|
||||||
private ExecutorService producerExecutor;
|
private final ExecutorService producerExecutor;
|
||||||
|
|
||||||
public TbAwsSqsAdmin(TbAwsSqsSettings sqsSettings, Map<String, String> attributes) {
|
public TbAwsSqsAdmin(TbAwsSqsSettings sqsSettings, Map<String, String> attributes) {
|
||||||
this.attributes = attributes;
|
this.attributes = attributes;
|
||||||
@ -55,11 +55,7 @@ public class TbAwsSqsAdmin implements TbQueueAdmin {
|
|||||||
AWSCredentials awsCredentials = new BasicAWSCredentials(sqsSettings.getAccessKeyId(), sqsSettings.getSecretAccessKey());
|
AWSCredentials awsCredentials = new BasicAWSCredentials(sqsSettings.getAccessKeyId(), sqsSettings.getSecretAccessKey());
|
||||||
credentialsProvider = new AWSStaticCredentialsProvider(awsCredentials);
|
credentialsProvider = new AWSStaticCredentialsProvider(awsCredentials);
|
||||||
}
|
}
|
||||||
int threadPoolSize = sqsSettings.getThreadPoolSize();
|
producerExecutor = Executors.newFixedThreadPool(sqsSettings.getThreadPoolSize(), ThingsBoardThreadFactory.forName("aws-sqs-queue-executor"));
|
||||||
if (threadPoolSize == 0) {
|
|
||||||
threadPoolSize = 50; //AmazonSQSAsyncClient.DEFAULT_THREAD_POOL_SIZE = 50;
|
|
||||||
}
|
|
||||||
producerExecutor = Executors.newFixedThreadPool(threadPoolSize, ThingsBoardThreadFactory.forName("aws-sqs-queue-executor"));
|
|
||||||
|
|
||||||
sqsClient = AmazonSQSClientBuilder.standard()
|
sqsClient = AmazonSQSClientBuilder.standard()
|
||||||
.withCredentials(credentialsProvider)
|
.withCredentials(credentialsProvider)
|
||||||
|
|||||||
@ -20,11 +20,6 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
import org.thingsboard.common.util.ThingsBoardThreadFactory;
|
|
||||||
|
|
||||||
import javax.annotation.PostConstruct;
|
|
||||||
import java.util.concurrent.ExecutorService;
|
|
||||||
import java.util.concurrent.Executors;
|
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@ConditionalOnExpression("'${queue.type:null}'=='aws-sqs'")
|
@ConditionalOnExpression("'${queue.type:null}'=='aws-sqs'")
|
||||||
@ -47,7 +42,7 @@ public class TbAwsSqsSettings {
|
|||||||
@Value("${queue.aws_sqs.threads_per_topic}")
|
@Value("${queue.aws_sqs.threads_per_topic}")
|
||||||
private int threadsPerTopic;
|
private int threadsPerTopic;
|
||||||
|
|
||||||
@Value("${queue.aws_sqs.producer_thread_pool_size:0}")
|
@Value("${queue.aws_sqs.producer_thread_pool_size:50}")
|
||||||
private int threadPoolSize;
|
private int threadPoolSize;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -155,6 +155,8 @@ queue:
|
|||||||
region: "${TB_QUEUE_AWS_SQS_REGION:YOUR_REGION}"
|
region: "${TB_QUEUE_AWS_SQS_REGION:YOUR_REGION}"
|
||||||
# Number of threads per each AWS SQS queue in consumer
|
# Number of threads per each AWS SQS queue in consumer
|
||||||
threads_per_topic: "${TB_QUEUE_AWS_SQS_THREADS_PER_TOPIC:1}"
|
threads_per_topic: "${TB_QUEUE_AWS_SQS_THREADS_PER_TOPIC:1}"
|
||||||
|
# Thread pool size for aws_sqs queue producer executor provider. Default value equals to AmazonSQSAsyncClient.DEFAULT_THREAD_POOL_SIZE
|
||||||
|
producer_thread_pool_size: "${TB_QUEUE_AWS_SQS_EXECUTOR_THREAD_POOL_SIZE:50}"
|
||||||
queue-properties:
|
queue-properties:
|
||||||
# AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
|
# AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
|
||||||
core: "${TB_QUEUE_AWS_SQS_CORE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
|
core: "${TB_QUEUE_AWS_SQS_CORE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
|
||||||
|
|||||||
@ -281,6 +281,8 @@ queue:
|
|||||||
region: "${TB_QUEUE_AWS_SQS_REGION:YOUR_REGION}"
|
region: "${TB_QUEUE_AWS_SQS_REGION:YOUR_REGION}"
|
||||||
# Number of threads per each AWS SQS queue in consumer
|
# Number of threads per each AWS SQS queue in consumer
|
||||||
threads_per_topic: "${TB_QUEUE_AWS_SQS_THREADS_PER_TOPIC:1}"
|
threads_per_topic: "${TB_QUEUE_AWS_SQS_THREADS_PER_TOPIC:1}"
|
||||||
|
# Thread pool size for aws_sqs queue producer executor provider. Default value equals to AmazonSQSAsyncClient.DEFAULT_THREAD_POOL_SIZE
|
||||||
|
producer_thread_pool_size: "${TB_QUEUE_AWS_SQS_EXECUTOR_THREAD_POOL_SIZE:50}"
|
||||||
queue-properties:
|
queue-properties:
|
||||||
# AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
|
# AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
|
||||||
rule-engine: "${TB_QUEUE_AWS_SQS_RE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
|
rule-engine: "${TB_QUEUE_AWS_SQS_RE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
|
||||||
|
|||||||
@ -265,6 +265,8 @@ queue:
|
|||||||
region: "${TB_QUEUE_AWS_SQS_REGION:YOUR_REGION}"
|
region: "${TB_QUEUE_AWS_SQS_REGION:YOUR_REGION}"
|
||||||
# Number of threads per each AWS SQS queue in consumer
|
# Number of threads per each AWS SQS queue in consumer
|
||||||
threads_per_topic: "${TB_QUEUE_AWS_SQS_THREADS_PER_TOPIC:1}"
|
threads_per_topic: "${TB_QUEUE_AWS_SQS_THREADS_PER_TOPIC:1}"
|
||||||
|
# Thread pool size for aws_sqs queue producer executor provider. Default value equals to AmazonSQSAsyncClient.DEFAULT_THREAD_POOL_SIZE
|
||||||
|
producer_thread_pool_size: "${TB_QUEUE_AWS_SQS_EXECUTOR_THREAD_POOL_SIZE:50}"
|
||||||
queue-properties:
|
queue-properties:
|
||||||
# AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
|
# AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
|
||||||
rule-engine: "${TB_QUEUE_AWS_SQS_RE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
|
rule-engine: "${TB_QUEUE_AWS_SQS_RE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
|
||||||
|
|||||||
@ -360,6 +360,8 @@ queue:
|
|||||||
region: "${TB_QUEUE_AWS_SQS_REGION:YOUR_REGION}"
|
region: "${TB_QUEUE_AWS_SQS_REGION:YOUR_REGION}"
|
||||||
# Number of threads per each AWS SQS queue in consumer
|
# Number of threads per each AWS SQS queue in consumer
|
||||||
threads_per_topic: "${TB_QUEUE_AWS_SQS_THREADS_PER_TOPIC:1}"
|
threads_per_topic: "${TB_QUEUE_AWS_SQS_THREADS_PER_TOPIC:1}"
|
||||||
|
# Thread pool size for aws_sqs queue producer executor provider. Default value equals to AmazonSQSAsyncClient.DEFAULT_THREAD_POOL_SIZE
|
||||||
|
producer_thread_pool_size: "${TB_QUEUE_AWS_SQS_EXECUTOR_THREAD_POOL_SIZE:50}"
|
||||||
queue-properties:
|
queue-properties:
|
||||||
# AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
|
# AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
|
||||||
rule-engine: "${TB_QUEUE_AWS_SQS_RE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
|
rule-engine: "${TB_QUEUE_AWS_SQS_RE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
|
||||||
|
|||||||
@ -297,6 +297,8 @@ queue:
|
|||||||
region: "${TB_QUEUE_AWS_SQS_REGION:YOUR_REGION}"
|
region: "${TB_QUEUE_AWS_SQS_REGION:YOUR_REGION}"
|
||||||
# Number of threads per each AWS SQS queue in consumer
|
# Number of threads per each AWS SQS queue in consumer
|
||||||
threads_per_topic: "${TB_QUEUE_AWS_SQS_THREADS_PER_TOPIC:1}"
|
threads_per_topic: "${TB_QUEUE_AWS_SQS_THREADS_PER_TOPIC:1}"
|
||||||
|
# Thread pool size for aws_sqs queue producer executor provider. Default value equals to AmazonSQSAsyncClient.DEFAULT_THREAD_POOL_SIZE
|
||||||
|
producer_thread_pool_size: "${TB_QUEUE_AWS_SQS_EXECUTOR_THREAD_POOL_SIZE:50}"
|
||||||
queue-properties:
|
queue-properties:
|
||||||
# AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
|
# AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
|
||||||
rule-engine: "${TB_QUEUE_AWS_SQS_RE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
|
rule-engine: "${TB_QUEUE_AWS_SQS_RE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
|
||||||
|
|||||||
@ -250,6 +250,8 @@ queue:
|
|||||||
region: "${TB_QUEUE_AWS_SQS_REGION:YOUR_REGION}"
|
region: "${TB_QUEUE_AWS_SQS_REGION:YOUR_REGION}"
|
||||||
# Number of threads per each AWS SQS queue in consumer
|
# Number of threads per each AWS SQS queue in consumer
|
||||||
threads_per_topic: "${TB_QUEUE_AWS_SQS_THREADS_PER_TOPIC:1}"
|
threads_per_topic: "${TB_QUEUE_AWS_SQS_THREADS_PER_TOPIC:1}"
|
||||||
|
# Thread pool size for aws_sqs queue producer executor provider. Default value equals to AmazonSQSAsyncClient.DEFAULT_THREAD_POOL_SIZE
|
||||||
|
producer_thread_pool_size: "${TB_QUEUE_AWS_SQS_EXECUTOR_THREAD_POOL_SIZE:50}"
|
||||||
queue-properties:
|
queue-properties:
|
||||||
# AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
|
# AWS SQS queue properties. VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
|
||||||
rule-engine: "${TB_QUEUE_AWS_SQS_RE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
|
rule-engine: "${TB_QUEUE_AWS_SQS_RE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user