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}"
 | 
			
		||||
    # Number of threads per each AWS SQS queue in consumer
 | 
			
		||||
    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:
 | 
			
		||||
      # 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}"
 | 
			
		||||
 | 
			
		||||
@ -43,7 +43,7 @@ public class TbAwsSqsAdmin implements TbQueueAdmin {
 | 
			
		||||
    private final AmazonSQS sqsClient;
 | 
			
		||||
    private final Map<String, String> queues;
 | 
			
		||||
    @Getter
 | 
			
		||||
    private ExecutorService producerExecutor;
 | 
			
		||||
    private final ExecutorService producerExecutor;
 | 
			
		||||
 | 
			
		||||
    public TbAwsSqsAdmin(TbAwsSqsSettings sqsSettings, Map<String, String> attributes) {
 | 
			
		||||
        this.attributes = attributes;
 | 
			
		||||
@ -55,11 +55,7 @@ public class TbAwsSqsAdmin implements TbQueueAdmin {
 | 
			
		||||
            AWSCredentials awsCredentials = new BasicAWSCredentials(sqsSettings.getAccessKeyId(), sqsSettings.getSecretAccessKey());
 | 
			
		||||
            credentialsProvider = new AWSStaticCredentialsProvider(awsCredentials);
 | 
			
		||||
        }
 | 
			
		||||
        int threadPoolSize = sqsSettings.getThreadPoolSize();
 | 
			
		||||
        if (threadPoolSize == 0) {
 | 
			
		||||
            threadPoolSize = 50; //AmazonSQSAsyncClient.DEFAULT_THREAD_POOL_SIZE = 50;
 | 
			
		||||
        }
 | 
			
		||||
        producerExecutor = Executors.newFixedThreadPool(threadPoolSize, ThingsBoardThreadFactory.forName("aws-sqs-queue-executor"));
 | 
			
		||||
        producerExecutor = Executors.newFixedThreadPool(sqsSettings.getThreadPoolSize(), ThingsBoardThreadFactory.forName("aws-sqs-queue-executor"));
 | 
			
		||||
 | 
			
		||||
        sqsClient = AmazonSQSClientBuilder.standard()
 | 
			
		||||
                .withCredentials(credentialsProvider)
 | 
			
		||||
 | 
			
		||||
@ -20,11 +20,6 @@ import lombok.extern.slf4j.Slf4j;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Value;
 | 
			
		||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
 | 
			
		||||
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
 | 
			
		||||
@ConditionalOnExpression("'${queue.type:null}'=='aws-sqs'")
 | 
			
		||||
@ -47,7 +42,7 @@ public class TbAwsSqsSettings {
 | 
			
		||||
    @Value("${queue.aws_sqs.threads_per_topic}")
 | 
			
		||||
    private int threadsPerTopic;
 | 
			
		||||
 | 
			
		||||
    @Value("${queue.aws_sqs.producer_thread_pool_size:0}")
 | 
			
		||||
    @Value("${queue.aws_sqs.producer_thread_pool_size:50}")
 | 
			
		||||
    private int threadPoolSize;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -155,6 +155,8 @@ queue:
 | 
			
		||||
    region: "${TB_QUEUE_AWS_SQS_REGION:YOUR_REGION}"
 | 
			
		||||
    # Number of threads per each AWS SQS queue in consumer
 | 
			
		||||
    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:
 | 
			
		||||
      # 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}"
 | 
			
		||||
 | 
			
		||||
@ -281,6 +281,8 @@ queue:
 | 
			
		||||
    region: "${TB_QUEUE_AWS_SQS_REGION:YOUR_REGION}"
 | 
			
		||||
    # Number of threads per each AWS SQS queue in consumer
 | 
			
		||||
    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:
 | 
			
		||||
      # 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}"
 | 
			
		||||
 | 
			
		||||
@ -265,6 +265,8 @@ queue:
 | 
			
		||||
    region: "${TB_QUEUE_AWS_SQS_REGION:YOUR_REGION}"
 | 
			
		||||
    # Number of threads per each AWS SQS queue in consumer
 | 
			
		||||
    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:
 | 
			
		||||
      # 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}"
 | 
			
		||||
 | 
			
		||||
@ -360,6 +360,8 @@ queue:
 | 
			
		||||
    region: "${TB_QUEUE_AWS_SQS_REGION:YOUR_REGION}"
 | 
			
		||||
    # Number of threads per each AWS SQS queue in consumer
 | 
			
		||||
    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:
 | 
			
		||||
      # 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}"
 | 
			
		||||
 | 
			
		||||
@ -297,6 +297,8 @@ queue:
 | 
			
		||||
    region: "${TB_QUEUE_AWS_SQS_REGION:YOUR_REGION}"
 | 
			
		||||
    # Number of threads per each AWS SQS queue in consumer
 | 
			
		||||
    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:
 | 
			
		||||
      # 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}"
 | 
			
		||||
 | 
			
		||||
@ -250,6 +250,8 @@ queue:
 | 
			
		||||
    region: "${TB_QUEUE_AWS_SQS_REGION:YOUR_REGION}"
 | 
			
		||||
    # Number of threads per each AWS SQS queue in consumer
 | 
			
		||||
    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:
 | 
			
		||||
      # 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}"
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user