Fix Queue settings for AWS
This commit is contained in:
		
							parent
							
								
									addba55cf8
								
							
						
					
					
						commit
						f7225f643c
					
				@ -949,6 +949,7 @@ queue:
 | 
			
		||||
      notifications: "${TB_QUEUE_KAFKA_NOTIFICATIONS_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}"
 | 
			
		||||
      js-executor: "${TB_QUEUE_KAFKA_JE_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:104857600;partitions:100;min.insync.replicas:1}"
 | 
			
		||||
      ota-updates: "${TB_QUEUE_KAFKA_OTA_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:10;min.insync.replicas:1}"
 | 
			
		||||
      version-control: "${TB_QUEUE_KAFKA_VC_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:10;min.insync.replicas:1}"
 | 
			
		||||
    consumer-stats:
 | 
			
		||||
      enabled: "${TB_QUEUE_KAFKA_CONSUMER_STATS_ENABLED:true}"
 | 
			
		||||
      print-interval-ms: "${TB_QUEUE_KAFKA_CONSUMER_STATS_MIN_PRINT_INTERVAL_MS:60000}"
 | 
			
		||||
@ -965,6 +966,8 @@ queue:
 | 
			
		||||
      transport-api: "${TB_QUEUE_AWS_SQS_TA_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
 | 
			
		||||
      notifications: "${TB_QUEUE_AWS_SQS_NOTIFICATIONS_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
 | 
			
		||||
      js-executor: "${TB_QUEUE_AWS_SQS_JE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
 | 
			
		||||
      ota-updates: "${TB_QUEUE_AWS_SQS_OTA_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
 | 
			
		||||
      version-control: "${TB_QUEUE_AWS_SQS_VC_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
 | 
			
		||||
      #    VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
 | 
			
		||||
  pubsub:
 | 
			
		||||
    project_id: "${TB_QUEUE_PUBSUB_PROJECT_ID:YOUR_PROJECT_ID}"
 | 
			
		||||
@ -977,6 +980,7 @@ queue:
 | 
			
		||||
      transport-api: "${TB_QUEUE_PUBSUB_TA_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}"
 | 
			
		||||
      notifications: "${TB_QUEUE_PUBSUB_NOTIFICATIONS_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}"
 | 
			
		||||
      js-executor: "${TB_QUEUE_PUBSUB_JE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}"
 | 
			
		||||
      version-control: "${TB_QUEUE_PUBSUB_VC_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}"
 | 
			
		||||
  service_bus:
 | 
			
		||||
    namespace_name: "${TB_QUEUE_SERVICE_BUS_NAMESPACE_NAME:YOUR_NAMESPACE_NAME}"
 | 
			
		||||
    sas_key_name: "${TB_QUEUE_SERVICE_BUS_SAS_KEY_NAME:YOUR_SAS_KEY_NAME}"
 | 
			
		||||
@ -988,6 +992,7 @@ queue:
 | 
			
		||||
      transport-api: "${TB_QUEUE_SERVICE_BUS_TA_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}"
 | 
			
		||||
      notifications: "${TB_QUEUE_SERVICE_BUS_NOTIFICATIONS_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}"
 | 
			
		||||
      js-executor: "${TB_QUEUE_SERVICE_BUS_JE_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}"
 | 
			
		||||
      version-control: "${TB_QUEUE_SERVICE_BUS_VC_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}"
 | 
			
		||||
  rabbitmq:
 | 
			
		||||
    exchange_name: "${TB_QUEUE_RABBIT_MQ_EXCHANGE_NAME:}"
 | 
			
		||||
    host: "${TB_QUEUE_RABBIT_MQ_HOST:localhost}"
 | 
			
		||||
@ -1004,6 +1009,7 @@ queue:
 | 
			
		||||
      transport-api: "${TB_QUEUE_RABBIT_MQ_TA_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}"
 | 
			
		||||
      notifications: "${TB_QUEUE_RABBIT_MQ_NOTIFICATIONS_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}"
 | 
			
		||||
      js-executor: "${TB_QUEUE_RABBIT_MQ_JE_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}"
 | 
			
		||||
      version-control: "${TB_QUEUE_RABBIT_MQ_VC_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}"
 | 
			
		||||
  partitions:
 | 
			
		||||
    hash_function_name: "${TB_QUEUE_PARTITIONS_HASH_FUNCTION_NAME:murmur3_128}" # murmur3_32, murmur3_128 or sha256
 | 
			
		||||
  transport_api:
 | 
			
		||||
 | 
			
		||||
@ -19,6 +19,7 @@ import lombok.Getter;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Value;
 | 
			
		||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
 | 
			
		||||
import org.springframework.stereotype.Component;
 | 
			
		||||
import org.thingsboard.server.common.data.StringUtils;
 | 
			
		||||
 | 
			
		||||
import javax.annotation.PostConstruct;
 | 
			
		||||
import java.util.HashMap;
 | 
			
		||||
@ -27,15 +28,15 @@ import java.util.Map;
 | 
			
		||||
@Component
 | 
			
		||||
@ConditionalOnExpression("'${queue.type:null}'=='service-bus'")
 | 
			
		||||
public class TbServiceBusQueueConfigs {
 | 
			
		||||
    @Value("${queue.service-bus.queue-properties.core}")
 | 
			
		||||
    @Value("${queue.service-bus.queue-properties.core:}")
 | 
			
		||||
    private String coreProperties;
 | 
			
		||||
    @Value("${queue.service-bus.queue-properties.rule-engine}")
 | 
			
		||||
    @Value("${queue.service-bus.queue-properties.rule-engine:}")
 | 
			
		||||
    private String ruleEngineProperties;
 | 
			
		||||
    @Value("${queue.service-bus.queue-properties.transport-api}")
 | 
			
		||||
    @Value("${queue.service-bus.queue-properties.transport-api:}")
 | 
			
		||||
    private String transportApiProperties;
 | 
			
		||||
    @Value("${queue.service-bus.queue-properties.notifications}")
 | 
			
		||||
    @Value("${queue.service-bus.queue-properties.notifications:}")
 | 
			
		||||
    private String notificationsProperties;
 | 
			
		||||
    @Value("${queue.service-bus.queue-properties.js-executor}")
 | 
			
		||||
    @Value("${queue.service-bus.queue-properties.js-executor:}")
 | 
			
		||||
    private String jsExecutorProperties;
 | 
			
		||||
    @Value("${queue.service-bus.queue-properties.version-control:}")
 | 
			
		||||
    private String vcProperties;
 | 
			
		||||
@ -64,11 +65,13 @@ public class TbServiceBusQueueConfigs {
 | 
			
		||||
 | 
			
		||||
    private Map<String, String> getConfigs(String properties) {
 | 
			
		||||
        Map<String, String> configs = new HashMap<>();
 | 
			
		||||
        for (String property : properties.split(";")) {
 | 
			
		||||
            int delimiterPosition = property.indexOf(":");
 | 
			
		||||
            String key = property.substring(0, delimiterPosition);
 | 
			
		||||
            String value = property.substring(delimiterPosition + 1);
 | 
			
		||||
            configs.put(key, value);
 | 
			
		||||
        if (StringUtils.isNotEmpty(properties)) {
 | 
			
		||||
            for (String property : properties.split(";")) {
 | 
			
		||||
                int delimiterPosition = property.indexOf(":");
 | 
			
		||||
                String key = property.substring(0, delimiterPosition);
 | 
			
		||||
                String value = property.substring(delimiterPosition + 1);
 | 
			
		||||
                configs.put(key, value);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return configs;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -28,15 +28,15 @@ import java.util.Map;
 | 
			
		||||
@Component
 | 
			
		||||
@ConditionalOnProperty(prefix = "queue", value = "type", havingValue = "kafka")
 | 
			
		||||
public class TbKafkaTopicConfigs {
 | 
			
		||||
    @Value("${queue.kafka.topic-properties.core}")
 | 
			
		||||
    @Value("${queue.kafka.topic-properties.core:}")
 | 
			
		||||
    private String coreProperties;
 | 
			
		||||
    @Value("${queue.kafka.topic-properties.rule-engine}")
 | 
			
		||||
    @Value("${queue.kafka.topic-properties.rule-engine:}")
 | 
			
		||||
    private String ruleEngineProperties;
 | 
			
		||||
    @Value("${queue.kafka.topic-properties.transport-api}")
 | 
			
		||||
    @Value("${queue.kafka.topic-properties.transport-api:}")
 | 
			
		||||
    private String transportApiProperties;
 | 
			
		||||
    @Value("${queue.kafka.topic-properties.notifications}")
 | 
			
		||||
    @Value("${queue.kafka.topic-properties.notifications:}")
 | 
			
		||||
    private String notificationsProperties;
 | 
			
		||||
    @Value("${queue.kafka.topic-properties.js-executor}")
 | 
			
		||||
    @Value("${queue.kafka.topic-properties.js-executor:}")
 | 
			
		||||
    private String jsExecutorProperties;
 | 
			
		||||
    @Value("${queue.kafka.topic-properties.ota-updates:}")
 | 
			
		||||
    private String fwUpdatesProperties;
 | 
			
		||||
 | 
			
		||||
@ -76,6 +76,7 @@ public class AwsSqsMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEng
 | 
			
		||||
    private final TbQueueAdmin jsExecutorAdmin;
 | 
			
		||||
    private final TbQueueAdmin transportApiAdmin;
 | 
			
		||||
    private final TbQueueAdmin notificationAdmin;
 | 
			
		||||
    private final TbQueueAdmin otaAdmin;
 | 
			
		||||
    private final TbQueueAdmin vcAdmin;
 | 
			
		||||
 | 
			
		||||
    public AwsSqsMonolithQueueFactory(NotificationsTopicService notificationsTopicService, TbQueueCoreSettings coreSettings,
 | 
			
		||||
@ -102,6 +103,7 @@ public class AwsSqsMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEng
 | 
			
		||||
        this.jsExecutorAdmin = new TbAwsSqsAdmin(sqsSettings, sqsQueueAttributes.getJsExecutorAttributes());
 | 
			
		||||
        this.transportApiAdmin = new TbAwsSqsAdmin(sqsSettings, sqsQueueAttributes.getTransportApiAttributes());
 | 
			
		||||
        this.notificationAdmin = new TbAwsSqsAdmin(sqsSettings, sqsQueueAttributes.getNotificationsAttributes());
 | 
			
		||||
        this.otaAdmin = new TbAwsSqsAdmin(sqsSettings, sqsQueueAttributes.getOtaAttributes());
 | 
			
		||||
        this.vcAdmin = new TbAwsSqsAdmin(sqsSettings, sqsQueueAttributes.getVcAttributes());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -210,13 +212,13 @@ public class AwsSqsMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEng
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public TbQueueConsumer<TbProtoQueueMsg<ToOtaPackageStateServiceMsg>> createToOtaPackageStateServiceMsgConsumer() {
 | 
			
		||||
        return new TbAwsSqsConsumerTemplate<>(coreAdmin, sqsSettings, coreSettings.getOtaPackageTopic(),
 | 
			
		||||
        return new TbAwsSqsConsumerTemplate<>(otaAdmin, sqsSettings, coreSettings.getOtaPackageTopic(),
 | 
			
		||||
                msg -> new TbProtoQueueMsg<>(msg.getKey(), ToOtaPackageStateServiceMsg.parseFrom(msg.getData()), msg.getHeaders()));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public TbQueueProducer<TbProtoQueueMsg<ToOtaPackageStateServiceMsg>> createToOtaPackageStateServiceMsgProducer() {
 | 
			
		||||
        return new TbAwsSqsProducerTemplate<>(coreAdmin, sqsSettings, coreSettings.getOtaPackageTopic());
 | 
			
		||||
        return new TbAwsSqsProducerTemplate<>(otaAdmin, sqsSettings, coreSettings.getOtaPackageTopic());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
@ -241,6 +243,9 @@ public class AwsSqsMonolithQueueFactory implements TbCoreQueueFactory, TbRuleEng
 | 
			
		||||
        if (notificationAdmin != null) {
 | 
			
		||||
            notificationAdmin.destroy();
 | 
			
		||||
        }
 | 
			
		||||
        if (otaAdmin != null) {
 | 
			
		||||
            otaAdmin.destroy();
 | 
			
		||||
        }
 | 
			
		||||
        if (vcAdmin != null) {
 | 
			
		||||
            vcAdmin.destroy();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@ -45,6 +45,7 @@ import org.thingsboard.server.queue.settings.TbQueueRemoteJsInvokeSettings;
 | 
			
		||||
import org.thingsboard.server.queue.settings.TbQueueRuleEngineSettings;
 | 
			
		||||
import org.thingsboard.server.queue.settings.TbQueueTransportApiSettings;
 | 
			
		||||
import org.thingsboard.server.queue.settings.TbQueueTransportNotificationSettings;
 | 
			
		||||
import org.thingsboard.server.queue.settings.TbQueueVersionControlSettings;
 | 
			
		||||
import org.thingsboard.server.queue.sqs.TbAwsSqsAdmin;
 | 
			
		||||
import org.thingsboard.server.queue.sqs.TbAwsSqsConsumerTemplate;
 | 
			
		||||
import org.thingsboard.server.queue.sqs.TbAwsSqsProducerTemplate;
 | 
			
		||||
@ -66,18 +67,22 @@ public class AwsSqsTbCoreQueueFactory implements TbCoreQueueFactory {
 | 
			
		||||
    private final TbServiceInfoProvider serviceInfoProvider;
 | 
			
		||||
    private final TbQueueRemoteJsInvokeSettings jsInvokeSettings;
 | 
			
		||||
    private final TbQueueTransportNotificationSettings transportNotificationSettings;
 | 
			
		||||
    private final TbQueueVersionControlSettings vcSettings;
 | 
			
		||||
 | 
			
		||||
    private final TbQueueAdmin coreAdmin;
 | 
			
		||||
    private final TbQueueAdmin ruleEngineAdmin;
 | 
			
		||||
    private final TbQueueAdmin jsExecutorAdmin;
 | 
			
		||||
    private final TbQueueAdmin transportApiAdmin;
 | 
			
		||||
    private final TbQueueAdmin notificationAdmin;
 | 
			
		||||
    private final TbQueueAdmin otaAdmin;
 | 
			
		||||
    private final TbQueueAdmin vcAdmin;
 | 
			
		||||
 | 
			
		||||
    public AwsSqsTbCoreQueueFactory(TbAwsSqsSettings sqsSettings,
 | 
			
		||||
                                    TbQueueCoreSettings coreSettings,
 | 
			
		||||
                                    TbQueueTransportApiSettings transportApiSettings,
 | 
			
		||||
                                    TbQueueRuleEngineSettings ruleEngineSettings,
 | 
			
		||||
                                    NotificationsTopicService notificationsTopicService,
 | 
			
		||||
                                    TbQueueVersionControlSettings vcSettings,
 | 
			
		||||
                                    TbServiceInfoProvider serviceInfoProvider,
 | 
			
		||||
                                    TbQueueRemoteJsInvokeSettings jsInvokeSettings,
 | 
			
		||||
                                    TbAwsSqsQueueAttributes sqsQueueAttributes,
 | 
			
		||||
@ -90,12 +95,15 @@ public class AwsSqsTbCoreQueueFactory implements TbCoreQueueFactory {
 | 
			
		||||
        this.serviceInfoProvider = serviceInfoProvider;
 | 
			
		||||
        this.jsInvokeSettings = jsInvokeSettings;
 | 
			
		||||
        this.transportNotificationSettings = transportNotificationSettings;
 | 
			
		||||
        this.vcSettings = vcSettings;
 | 
			
		||||
 | 
			
		||||
        this.coreAdmin = new TbAwsSqsAdmin(sqsSettings, sqsQueueAttributes.getCoreAttributes());
 | 
			
		||||
        this.ruleEngineAdmin = new TbAwsSqsAdmin(sqsSettings, sqsQueueAttributes.getRuleEngineAttributes());
 | 
			
		||||
        this.jsExecutorAdmin = new TbAwsSqsAdmin(sqsSettings, sqsQueueAttributes.getJsExecutorAttributes());
 | 
			
		||||
        this.transportApiAdmin = new TbAwsSqsAdmin(sqsSettings, sqsQueueAttributes.getTransportApiAttributes());
 | 
			
		||||
        this.notificationAdmin = new TbAwsSqsAdmin(sqsSettings, sqsQueueAttributes.getNotificationsAttributes());
 | 
			
		||||
        this.otaAdmin = new TbAwsSqsAdmin(sqsSettings, sqsQueueAttributes.getOtaAttributes());
 | 
			
		||||
        this.vcAdmin = new TbAwsSqsAdmin(sqsSettings, sqsQueueAttributes.getVcAttributes());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
@ -183,19 +191,18 @@ public class AwsSqsTbCoreQueueFactory implements TbCoreQueueFactory {
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public TbQueueConsumer<TbProtoQueueMsg<ToOtaPackageStateServiceMsg>> createToOtaPackageStateServiceMsgConsumer() {
 | 
			
		||||
        return new TbAwsSqsConsumerTemplate<>(coreAdmin, sqsSettings, coreSettings.getOtaPackageTopic(),
 | 
			
		||||
        return new TbAwsSqsConsumerTemplate<>(otaAdmin, sqsSettings, coreSettings.getOtaPackageTopic(),
 | 
			
		||||
                msg -> new TbProtoQueueMsg<>(msg.getKey(), ToOtaPackageStateServiceMsg.parseFrom(msg.getData()), msg.getHeaders()));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public TbQueueProducer<TbProtoQueueMsg<ToOtaPackageStateServiceMsg>> createToOtaPackageStateServiceMsgProducer() {
 | 
			
		||||
        return new TbAwsSqsProducerTemplate<>(coreAdmin, sqsSettings, coreSettings.getOtaPackageTopic());
 | 
			
		||||
        return new TbAwsSqsProducerTemplate<>(otaAdmin, sqsSettings, coreSettings.getOtaPackageTopic());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public TbQueueProducer<TbProtoQueueMsg<TransportProtos.ToVersionControlServiceMsg>> createVersionControlMsgProducer() {
 | 
			
		||||
        //TODO: version-control
 | 
			
		||||
        return null;
 | 
			
		||||
        return new TbAwsSqsProducerTemplate<>(vcAdmin, sqsSettings, vcSettings.getTopic());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @PreDestroy
 | 
			
		||||
@ -215,5 +222,11 @@ public class AwsSqsTbCoreQueueFactory implements TbCoreQueueFactory {
 | 
			
		||||
        if (notificationAdmin != null) {
 | 
			
		||||
            notificationAdmin.destroy();
 | 
			
		||||
        }
 | 
			
		||||
        if (otaAdmin != null) {
 | 
			
		||||
            otaAdmin.destroy();
 | 
			
		||||
        }
 | 
			
		||||
        if (vcAdmin != null) {
 | 
			
		||||
            vcAdmin.destroy();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -39,6 +39,7 @@ import org.thingsboard.server.queue.settings.TbQueueCoreSettings;
 | 
			
		||||
import org.thingsboard.server.queue.settings.TbQueueRemoteJsInvokeSettings;
 | 
			
		||||
import org.thingsboard.server.queue.settings.TbQueueRuleEngineSettings;
 | 
			
		||||
import org.thingsboard.server.queue.settings.TbQueueTransportNotificationSettings;
 | 
			
		||||
import org.thingsboard.server.queue.settings.TbQueueVersionControlSettings;
 | 
			
		||||
import org.thingsboard.server.queue.sqs.TbAwsSqsAdmin;
 | 
			
		||||
import org.thingsboard.server.queue.sqs.TbAwsSqsConsumerTemplate;
 | 
			
		||||
import org.thingsboard.server.queue.sqs.TbAwsSqsProducerTemplate;
 | 
			
		||||
@ -64,6 +65,7 @@ public class AwsSqsTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory
 | 
			
		||||
    private final TbQueueAdmin ruleEngineAdmin;
 | 
			
		||||
    private final TbQueueAdmin jsExecutorAdmin;
 | 
			
		||||
    private final TbQueueAdmin notificationAdmin;
 | 
			
		||||
    private final TbQueueAdmin otaAdmin;
 | 
			
		||||
 | 
			
		||||
    public AwsSqsTbRuleEngineQueueFactory(NotificationsTopicService notificationsTopicService, TbQueueCoreSettings coreSettings,
 | 
			
		||||
                                          TbQueueRuleEngineSettings ruleEngineSettings,
 | 
			
		||||
@ -84,6 +86,7 @@ public class AwsSqsTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory
 | 
			
		||||
        this.ruleEngineAdmin = new TbAwsSqsAdmin(sqsSettings, sqsQueueAttributes.getRuleEngineAttributes());
 | 
			
		||||
        this.jsExecutorAdmin = new TbAwsSqsAdmin(sqsSettings, sqsQueueAttributes.getJsExecutorAttributes());
 | 
			
		||||
        this.notificationAdmin = new TbAwsSqsAdmin(sqsSettings, sqsQueueAttributes.getNotificationsAttributes());
 | 
			
		||||
        this.otaAdmin = new TbAwsSqsAdmin(sqsSettings, sqsQueueAttributes.getOtaAttributes());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
@ -154,7 +157,7 @@ public class AwsSqsTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public TbQueueProducer<TbProtoQueueMsg<TransportProtos.ToOtaPackageStateServiceMsg>> createToOtaPackageStateServiceMsgProducer() {
 | 
			
		||||
        return new TbAwsSqsProducerTemplate<>(coreAdmin, sqsSettings, coreSettings.getOtaPackageTopic());
 | 
			
		||||
        return new TbAwsSqsProducerTemplate<>(otaAdmin, sqsSettings, coreSettings.getOtaPackageTopic());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -172,6 +175,9 @@ public class AwsSqsTbRuleEngineQueueFactory implements TbRuleEngineQueueFactory
 | 
			
		||||
        if (notificationAdmin != null) {
 | 
			
		||||
            notificationAdmin.destroy();
 | 
			
		||||
        }
 | 
			
		||||
        if (otaAdmin != null) {
 | 
			
		||||
            otaAdmin.destroy();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -19,6 +19,7 @@ import lombok.Getter;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Value;
 | 
			
		||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
 | 
			
		||||
import org.springframework.stereotype.Component;
 | 
			
		||||
import org.thingsboard.server.common.data.StringUtils;
 | 
			
		||||
 | 
			
		||||
import javax.annotation.PostConstruct;
 | 
			
		||||
import java.util.HashMap;
 | 
			
		||||
@ -27,7 +28,7 @@ import java.util.Map;
 | 
			
		||||
@Component
 | 
			
		||||
@ConditionalOnExpression("'${queue.type:null}'=='pubsub'")
 | 
			
		||||
public class TbPubSubSubscriptionSettings {
 | 
			
		||||
    @Value("${queue.pubsub.queue-properties.core}")
 | 
			
		||||
    @Value("${queue.pubsub.queue-properties.core:}")
 | 
			
		||||
    private String coreProperties;
 | 
			
		||||
    @Value("${queue.pubsub.queue-properties.rule-engine}")
 | 
			
		||||
    private String ruleEngineProperties;
 | 
			
		||||
@ -65,11 +66,13 @@ public class TbPubSubSubscriptionSettings {
 | 
			
		||||
 | 
			
		||||
    private Map<String, String> getSettings(String properties) {
 | 
			
		||||
        Map<String, String> configs = new HashMap<>();
 | 
			
		||||
        for (String property : properties.split(";")) {
 | 
			
		||||
            int delimiterPosition = property.indexOf(":");
 | 
			
		||||
            String key = property.substring(0, delimiterPosition);
 | 
			
		||||
            String value = property.substring(delimiterPosition + 1);
 | 
			
		||||
            configs.put(key, value);
 | 
			
		||||
        if (StringUtils.isNotEmpty(properties)) {
 | 
			
		||||
            for (String property : properties.split(";")) {
 | 
			
		||||
                int delimiterPosition = property.indexOf(":");
 | 
			
		||||
                String key = property.substring(0, delimiterPosition);
 | 
			
		||||
                String value = property.substring(delimiterPosition + 1);
 | 
			
		||||
                configs.put(key, value);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return configs;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -19,6 +19,7 @@ import lombok.Getter;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Value;
 | 
			
		||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
 | 
			
		||||
import org.springframework.stereotype.Component;
 | 
			
		||||
import org.thingsboard.server.common.data.StringUtils;
 | 
			
		||||
 | 
			
		||||
import javax.annotation.PostConstruct;
 | 
			
		||||
import java.util.HashMap;
 | 
			
		||||
@ -28,15 +29,15 @@ import java.util.regex.Pattern;
 | 
			
		||||
@Component
 | 
			
		||||
@ConditionalOnExpression("'${queue.type:null}'=='rabbitmq'")
 | 
			
		||||
public class TbRabbitMqQueueArguments {
 | 
			
		||||
    @Value("${queue.rabbitmq.queue-properties.core}")
 | 
			
		||||
    @Value("${queue.rabbitmq.queue-properties.core:}")
 | 
			
		||||
    private String coreProperties;
 | 
			
		||||
    @Value("${queue.rabbitmq.queue-properties.rule-engine}")
 | 
			
		||||
    @Value("${queue.rabbitmq.queue-properties.rule-engine:}")
 | 
			
		||||
    private String ruleEngineProperties;
 | 
			
		||||
    @Value("${queue.rabbitmq.queue-properties.transport-api}")
 | 
			
		||||
    @Value("${queue.rabbitmq.queue-properties.transport-api:}")
 | 
			
		||||
    private String transportApiProperties;
 | 
			
		||||
    @Value("${queue.rabbitmq.queue-properties.notifications}")
 | 
			
		||||
    @Value("${queue.rabbitmq.queue-properties.notifications:}")
 | 
			
		||||
    private String notificationsProperties;
 | 
			
		||||
    @Value("${queue.rabbitmq.queue-properties.js-executor}")
 | 
			
		||||
    @Value("${queue.rabbitmq.queue-properties.js-executor:}")
 | 
			
		||||
    private String jsExecutorProperties;
 | 
			
		||||
    @Value("${queue.rabbitmq.queue-properties.version-control:}")
 | 
			
		||||
    private String vcProperties;
 | 
			
		||||
@ -66,11 +67,13 @@ public class TbRabbitMqQueueArguments {
 | 
			
		||||
 | 
			
		||||
    private Map<String, Object> getArgs(String properties) {
 | 
			
		||||
        Map<String, Object> configs = new HashMap<>();
 | 
			
		||||
        for (String property : properties.split(";")) {
 | 
			
		||||
            int delimiterPosition = property.indexOf(":");
 | 
			
		||||
            String key = property.substring(0, delimiterPosition);
 | 
			
		||||
            String strValue = property.substring(delimiterPosition + 1);
 | 
			
		||||
            configs.put(key, getObjectValue(strValue));
 | 
			
		||||
        if (StringUtils.isNotEmpty(properties)) {
 | 
			
		||||
            for (String property : properties.split(";")) {
 | 
			
		||||
                int delimiterPosition = property.indexOf(":");
 | 
			
		||||
                String key = property.substring(0, delimiterPosition);
 | 
			
		||||
                String strValue = property.substring(delimiterPosition + 1);
 | 
			
		||||
                configs.put(key, getObjectValue(strValue));
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        return configs;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -20,6 +20,7 @@ import lombok.Getter;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Value;
 | 
			
		||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
 | 
			
		||||
import org.springframework.stereotype.Component;
 | 
			
		||||
import org.thingsboard.server.common.data.StringUtils;
 | 
			
		||||
 | 
			
		||||
import javax.annotation.PostConstruct;
 | 
			
		||||
import java.util.HashMap;
 | 
			
		||||
@ -28,16 +29,18 @@ import java.util.Map;
 | 
			
		||||
@Component
 | 
			
		||||
@ConditionalOnExpression("'${queue.type:null}'=='aws-sqs'")
 | 
			
		||||
public class TbAwsSqsQueueAttributes {
 | 
			
		||||
    @Value("${queue.aws-sqs.queue-properties.core}")
 | 
			
		||||
    @Value("${queue.aws-sqs.queue-properties.core:}")
 | 
			
		||||
    private String coreProperties;
 | 
			
		||||
    @Value("${queue.aws-sqs.queue-properties.rule-engine}")
 | 
			
		||||
    @Value("${queue.aws-sqs.queue-properties.rule-engine:}")
 | 
			
		||||
    private String ruleEngineProperties;
 | 
			
		||||
    @Value("${queue.aws-sqs.queue-properties.transport-api}")
 | 
			
		||||
    @Value("${queue.aws-sqs.queue-properties.transport-api:}")
 | 
			
		||||
    private String transportApiProperties;
 | 
			
		||||
    @Value("${queue.aws-sqs.queue-properties.notifications}")
 | 
			
		||||
    @Value("${queue.aws-sqs.queue-properties.notifications:}")
 | 
			
		||||
    private String notificationsProperties;
 | 
			
		||||
    @Value("${queue.aws-sqs.queue-properties.js-executor}")
 | 
			
		||||
    @Value("${queue.aws-sqs.queue-properties.js-executor:}")
 | 
			
		||||
    private String jsExecutorProperties;
 | 
			
		||||
    @Value("${queue.aws-sqs.queue-properties.ota-updates:}")
 | 
			
		||||
    private String otaProperties;
 | 
			
		||||
    @Value("${queue.aws-sqs.queue-properties.version-control:}")
 | 
			
		||||
    private String vcProperties;
 | 
			
		||||
 | 
			
		||||
@ -52,6 +55,8 @@ public class TbAwsSqsQueueAttributes {
 | 
			
		||||
    @Getter
 | 
			
		||||
    private Map<String, String> jsExecutorAttributes;
 | 
			
		||||
    @Getter
 | 
			
		||||
    private Map<String, String> otaAttributes;
 | 
			
		||||
    @Getter
 | 
			
		||||
    private Map<String, String> vcAttributes;
 | 
			
		||||
 | 
			
		||||
    private final Map<String, String> defaultAttributes = new HashMap<>();
 | 
			
		||||
@ -65,19 +70,21 @@ public class TbAwsSqsQueueAttributes {
 | 
			
		||||
        transportApiAttributes = getConfigs(transportApiProperties);
 | 
			
		||||
        notificationsAttributes = getConfigs(notificationsProperties);
 | 
			
		||||
        jsExecutorAttributes = getConfigs(jsExecutorProperties);
 | 
			
		||||
        otaAttributes = getConfigs(otaProperties);
 | 
			
		||||
        vcAttributes = getConfigs(vcProperties);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private Map<String, String> getConfigs(String properties) {
 | 
			
		||||
        Map<String, String> configs = new HashMap<>();
 | 
			
		||||
        for (String property : properties.split(";")) {
 | 
			
		||||
            int delimiterPosition = property.indexOf(":");
 | 
			
		||||
            String key = property.substring(0, delimiterPosition);
 | 
			
		||||
            String value = property.substring(delimiterPosition + 1);
 | 
			
		||||
            validateAttributeName(key);
 | 
			
		||||
            configs.put(key, value);
 | 
			
		||||
        Map<String, String> configs = new HashMap<>(defaultAttributes);
 | 
			
		||||
        if (StringUtils.isNotEmpty(properties)) {
 | 
			
		||||
            for (String property : properties.split(";")) {
 | 
			
		||||
                int delimiterPosition = property.indexOf(":");
 | 
			
		||||
                String key = property.substring(0, delimiterPosition);
 | 
			
		||||
                String value = property.substring(delimiterPosition + 1);
 | 
			
		||||
                validateAttributeName(key);
 | 
			
		||||
                configs.put(key, value);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        configs.putAll(defaultAttributes);
 | 
			
		||||
        return configs;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -87,12 +87,9 @@ queue:
 | 
			
		||||
      - key: "session.timeout.ms" # refer to https://docs.confluent.io/platform/current/installation/configuration/consumer-configs.html#consumerconfigs_session.timeout.ms
 | 
			
		||||
        value: "${TB_QUEUE_KAFKA_SESSION_TIMEOUT_MS:10000}" # (10 seconds)
 | 
			
		||||
    topic-properties:
 | 
			
		||||
      rule-engine: "${TB_QUEUE_KAFKA_RE_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}"
 | 
			
		||||
      core: "${TB_QUEUE_KAFKA_CORE_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}"
 | 
			
		||||
      transport-api: "${TB_QUEUE_KAFKA_TA_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}"
 | 
			
		||||
      notifications: "${TB_QUEUE_KAFKA_NOTIFICATIONS_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}"
 | 
			
		||||
      js-executor: "${TB_QUEUE_KAFKA_JE_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:104857600;partitions:100;min.insync.replicas:1}"
 | 
			
		||||
      ota-updates: "${TB_QUEUE_KAFKA_OTA_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:10;min.insync.replicas:1}"
 | 
			
		||||
      version-control: "${TB_QUEUE_KAFKA_CORE_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}"
 | 
			
		||||
    consumer-stats:
 | 
			
		||||
      enabled: "${TB_QUEUE_KAFKA_CONSUMER_STATS_ENABLED:true}"
 | 
			
		||||
      print-interval-ms: "${TB_QUEUE_KAFKA_CONSUMER_STATS_MIN_PRINT_INTERVAL_MS:60000}"
 | 
			
		||||
@ -104,11 +101,9 @@ queue:
 | 
			
		||||
    region: "${TB_QUEUE_AWS_SQS_REGION:YOUR_REGION}"
 | 
			
		||||
    threads_per_topic: "${TB_QUEUE_AWS_SQS_THREADS_PER_TOPIC:1}"
 | 
			
		||||
    queue-properties:
 | 
			
		||||
      rule-engine: "${TB_QUEUE_AWS_SQS_RE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
 | 
			
		||||
      core: "${TB_QUEUE_AWS_SQS_CORE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
 | 
			
		||||
      transport-api: "${TB_QUEUE_AWS_SQS_TA_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
 | 
			
		||||
      notifications: "${TB_QUEUE_AWS_SQS_NOTIFICATIONS_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
 | 
			
		||||
      js-executor: "${TB_QUEUE_AWS_SQS_JE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
 | 
			
		||||
      version-control: "${TB_QUEUE_AWS_SQS_VC_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
 | 
			
		||||
      #    VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
 | 
			
		||||
  pubsub:
 | 
			
		||||
    project_id: "${TB_QUEUE_PUBSUB_PROJECT_ID:YOUR_PROJECT_ID}"
 | 
			
		||||
@ -116,22 +111,18 @@ queue:
 | 
			
		||||
    max_msg_size: "${TB_QUEUE_PUBSUB_MAX_MSG_SIZE:1048576}" #in bytes
 | 
			
		||||
    max_messages: "${TB_QUEUE_PUBSUB_MAX_MESSAGES:1000}"
 | 
			
		||||
    queue-properties:
 | 
			
		||||
      rule-engine: "${TB_QUEUE_PUBSUB_RE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}"
 | 
			
		||||
      core: "${TB_QUEUE_PUBSUB_CORE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}"
 | 
			
		||||
      transport-api: "${TB_QUEUE_PUBSUB_TA_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}"
 | 
			
		||||
      notifications: "${TB_QUEUE_PUBSUB_NOTIFICATIONS_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}"
 | 
			
		||||
      js-executor: "${TB_QUEUE_PUBSUB_JE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}"
 | 
			
		||||
      version-control: "${TB_QUEUE_PUBSUB_VC_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}"
 | 
			
		||||
  service_bus:
 | 
			
		||||
    namespace_name: "${TB_QUEUE_SERVICE_BUS_NAMESPACE_NAME:YOUR_NAMESPACE_NAME}"
 | 
			
		||||
    sas_key_name: "${TB_QUEUE_SERVICE_BUS_SAS_KEY_NAME:YOUR_SAS_KEY_NAME}"
 | 
			
		||||
    sas_key: "${TB_QUEUE_SERVICE_BUS_SAS_KEY:YOUR_SAS_KEY}"
 | 
			
		||||
    max_messages: "${TB_QUEUE_SERVICE_BUS_MAX_MESSAGES:1000}"
 | 
			
		||||
    queue-properties:
 | 
			
		||||
      rule-engine: "${TB_QUEUE_SERVICE_BUS_RE_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}"
 | 
			
		||||
      core: "${TB_QUEUE_SERVICE_BUS_CORE_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}"
 | 
			
		||||
      transport-api: "${TB_QUEUE_SERVICE_BUS_TA_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}"
 | 
			
		||||
      notifications: "${TB_QUEUE_SERVICE_BUS_NOTIFICATIONS_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}"
 | 
			
		||||
      js-executor: "${TB_QUEUE_SERVICE_BUS_JE_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}"
 | 
			
		||||
      version-control: "${TB_QUEUE_SERVICE_BUS_VC_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}"
 | 
			
		||||
  rabbitmq:
 | 
			
		||||
    exchange_name: "${TB_QUEUE_RABBIT_MQ_EXCHANGE_NAME:}"
 | 
			
		||||
    host: "${TB_QUEUE_RABBIT_MQ_HOST:localhost}"
 | 
			
		||||
@ -143,11 +134,9 @@ queue:
 | 
			
		||||
    connection_timeout: "${TB_QUEUE_RABBIT_MQ_CONNECTION_TIMEOUT:60000}"
 | 
			
		||||
    handshake_timeout: "${TB_QUEUE_RABBIT_MQ_HANDSHAKE_TIMEOUT:10000}"
 | 
			
		||||
    queue-properties:
 | 
			
		||||
      rule-engine: "${TB_QUEUE_RABBIT_MQ_RE_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}"
 | 
			
		||||
      core: "${TB_QUEUE_RABBIT_MQ_CORE_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}"
 | 
			
		||||
      transport-api: "${TB_QUEUE_RABBIT_MQ_TA_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}"
 | 
			
		||||
      notifications: "${TB_QUEUE_RABBIT_MQ_NOTIFICATIONS_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}"
 | 
			
		||||
      js-executor: "${TB_QUEUE_RABBIT_MQ_JE_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}"
 | 
			
		||||
      version-control: "${TB_QUEUE_RABBIT_MQ_VC_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}"
 | 
			
		||||
  partitions:
 | 
			
		||||
    hash_function_name: "${TB_QUEUE_PARTITIONS_HASH_FUNCTION_NAME:murmur3_128}" # murmur3_32, murmur3_128 or sha256
 | 
			
		||||
  core:
 | 
			
		||||
 | 
			
		||||
@ -174,7 +174,6 @@ queue:
 | 
			
		||||
      core: "${TB_QUEUE_KAFKA_CORE_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}"
 | 
			
		||||
      transport-api: "${TB_QUEUE_KAFKA_TA_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}"
 | 
			
		||||
      notifications: "${TB_QUEUE_KAFKA_NOTIFICATIONS_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}"
 | 
			
		||||
      js-executor: "${TB_QUEUE_KAFKA_JE_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:104857600;partitions:100;min.insync.replicas:1}"
 | 
			
		||||
  aws_sqs:
 | 
			
		||||
    use_default_credential_provider_chain: "${TB_QUEUE_AWS_SQS_USE_DEFAULT_CREDENTIAL_PROVIDER_CHAIN:false}"
 | 
			
		||||
    access_key_id: "${TB_QUEUE_AWS_SQS_ACCESS_KEY_ID:YOUR_KEY}"
 | 
			
		||||
@ -186,7 +185,6 @@ queue:
 | 
			
		||||
      core: "${TB_QUEUE_AWS_SQS_CORE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
 | 
			
		||||
      transport-api: "${TB_QUEUE_AWS_SQS_TA_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
 | 
			
		||||
      notifications: "${TB_QUEUE_AWS_SQS_NOTIFICATIONS_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
 | 
			
		||||
      js-executor: "${TB_QUEUE_AWS_SQS_JE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
 | 
			
		||||
      #    VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
 | 
			
		||||
  pubsub:
 | 
			
		||||
    project_id: "${TB_QUEUE_PUBSUB_PROJECT_ID:YOUR_PROJECT_ID}"
 | 
			
		||||
@ -198,7 +196,6 @@ queue:
 | 
			
		||||
      core: "${TB_QUEUE_PUBSUB_CORE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}"
 | 
			
		||||
      transport-api: "${TB_QUEUE_PUBSUB_TA_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}"
 | 
			
		||||
      notifications: "${TB_QUEUE_PUBSUB_NOTIFICATIONS_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}"
 | 
			
		||||
      js-executor: "${TB_QUEUE_PUBSUB_JE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}"
 | 
			
		||||
  service_bus:
 | 
			
		||||
    namespace_name: "${TB_QUEUE_SERVICE_BUS_NAMESPACE_NAME:YOUR_NAMESPACE_NAME}"
 | 
			
		||||
    sas_key_name: "${TB_QUEUE_SERVICE_BUS_SAS_KEY_NAME:YOUR_SAS_KEY_NAME}"
 | 
			
		||||
@ -209,7 +206,6 @@ queue:
 | 
			
		||||
      core: "${TB_QUEUE_SERVICE_BUS_CORE_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}"
 | 
			
		||||
      transport-api: "${TB_QUEUE_SERVICE_BUS_TA_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}"
 | 
			
		||||
      notifications: "${TB_QUEUE_SERVICE_BUS_NOTIFICATIONS_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}"
 | 
			
		||||
      js-executor: "${TB_QUEUE_SERVICE_BUS_JE_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}"
 | 
			
		||||
  rabbitmq:
 | 
			
		||||
    exchange_name: "${TB_QUEUE_RABBIT_MQ_EXCHANGE_NAME:}"
 | 
			
		||||
    host: "${TB_QUEUE_RABBIT_MQ_HOST:localhost}"
 | 
			
		||||
@ -225,7 +221,6 @@ queue:
 | 
			
		||||
      core: "${TB_QUEUE_RABBIT_MQ_CORE_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}"
 | 
			
		||||
      transport-api: "${TB_QUEUE_RABBIT_MQ_TA_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}"
 | 
			
		||||
      notifications: "${TB_QUEUE_RABBIT_MQ_NOTIFICATIONS_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}"
 | 
			
		||||
      js-executor: "${TB_QUEUE_RABBIT_MQ_JE_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}"
 | 
			
		||||
  partitions:
 | 
			
		||||
    hash_function_name: "${TB_QUEUE_PARTITIONS_HASH_FUNCTION_NAME:murmur3_128}"
 | 
			
		||||
    virtual_nodes_size: "${TB_QUEUE_PARTITIONS_VIRTUAL_NODES_SIZE:16}"
 | 
			
		||||
 | 
			
		||||
@ -161,7 +161,6 @@ queue:
 | 
			
		||||
      core: "${TB_QUEUE_KAFKA_CORE_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}"
 | 
			
		||||
      transport-api: "${TB_QUEUE_KAFKA_TA_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}"
 | 
			
		||||
      notifications: "${TB_QUEUE_KAFKA_NOTIFICATIONS_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}"
 | 
			
		||||
      js-executor: "${TB_QUEUE_KAFKA_JE_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:104857600;partitions:100;min.insync.replicas:1}"
 | 
			
		||||
  aws_sqs:
 | 
			
		||||
    use_default_credential_provider_chain: "${TB_QUEUE_AWS_SQS_USE_DEFAULT_CREDENTIAL_PROVIDER_CHAIN:false}"
 | 
			
		||||
    access_key_id: "${TB_QUEUE_AWS_SQS_ACCESS_KEY_ID:YOUR_KEY}"
 | 
			
		||||
@ -173,7 +172,6 @@ queue:
 | 
			
		||||
      core: "${TB_QUEUE_AWS_SQS_CORE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
 | 
			
		||||
      transport-api: "${TB_QUEUE_AWS_SQS_TA_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
 | 
			
		||||
      notifications: "${TB_QUEUE_AWS_SQS_NOTIFICATIONS_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
 | 
			
		||||
      js-executor: "${TB_QUEUE_AWS_SQS_JE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
 | 
			
		||||
      #    VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
 | 
			
		||||
  pubsub:
 | 
			
		||||
    project_id: "${TB_QUEUE_PUBSUB_PROJECT_ID:YOUR_PROJECT_ID}"
 | 
			
		||||
@ -185,7 +183,6 @@ queue:
 | 
			
		||||
      core: "${TB_QUEUE_PUBSUB_CORE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}"
 | 
			
		||||
      transport-api: "${TB_QUEUE_PUBSUB_TA_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}"
 | 
			
		||||
      notifications: "${TB_QUEUE_PUBSUB_NOTIFICATIONS_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}"
 | 
			
		||||
      js-executor: "${TB_QUEUE_PUBSUB_JE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}"
 | 
			
		||||
  service_bus:
 | 
			
		||||
    namespace_name: "${TB_QUEUE_SERVICE_BUS_NAMESPACE_NAME:YOUR_NAMESPACE_NAME}"
 | 
			
		||||
    sas_key_name: "${TB_QUEUE_SERVICE_BUS_SAS_KEY_NAME:YOUR_SAS_KEY_NAME}"
 | 
			
		||||
@ -196,7 +193,6 @@ queue:
 | 
			
		||||
      core: "${TB_QUEUE_SERVICE_BUS_CORE_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}"
 | 
			
		||||
      transport-api: "${TB_QUEUE_SERVICE_BUS_TA_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}"
 | 
			
		||||
      notifications: "${TB_QUEUE_SERVICE_BUS_NOTIFICATIONS_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}"
 | 
			
		||||
      js-executor: "${TB_QUEUE_SERVICE_BUS_JE_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}"
 | 
			
		||||
  rabbitmq:
 | 
			
		||||
    exchange_name: "${TB_QUEUE_RABBIT_MQ_EXCHANGE_NAME:}"
 | 
			
		||||
    host: "${TB_QUEUE_RABBIT_MQ_HOST:localhost}"
 | 
			
		||||
@ -212,7 +208,6 @@ queue:
 | 
			
		||||
      core: "${TB_QUEUE_RABBIT_MQ_CORE_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}"
 | 
			
		||||
      transport-api: "${TB_QUEUE_RABBIT_MQ_TA_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}"
 | 
			
		||||
      notifications: "${TB_QUEUE_RABBIT_MQ_NOTIFICATIONS_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}"
 | 
			
		||||
      js-executor: "${TB_QUEUE_RABBIT_MQ_JE_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}"
 | 
			
		||||
  partitions:
 | 
			
		||||
    hash_function_name: "${TB_QUEUE_PARTITIONS_HASH_FUNCTION_NAME:murmur3_128}"
 | 
			
		||||
    virtual_nodes_size: "${TB_QUEUE_PARTITIONS_VIRTUAL_NODES_SIZE:16}"
 | 
			
		||||
 | 
			
		||||
@ -239,7 +239,6 @@ queue:
 | 
			
		||||
      core: "${TB_QUEUE_KAFKA_CORE_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1}"
 | 
			
		||||
      transport-api: "${TB_QUEUE_KAFKA_TA_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1}"
 | 
			
		||||
      notifications: "${TB_QUEUE_KAFKA_NOTIFICATIONS_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1}"
 | 
			
		||||
      js-executor: "${TB_QUEUE_KAFKA_JE_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:104857600;partitions:100}"
 | 
			
		||||
  aws_sqs:
 | 
			
		||||
    use_default_credential_provider_chain: "${TB_QUEUE_AWS_SQS_USE_DEFAULT_CREDENTIAL_PROVIDER_CHAIN:false}"
 | 
			
		||||
    access_key_id: "${TB_QUEUE_AWS_SQS_ACCESS_KEY_ID:YOUR_KEY}"
 | 
			
		||||
@ -251,7 +250,6 @@ queue:
 | 
			
		||||
      core: "${TB_QUEUE_AWS_SQS_CORE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
 | 
			
		||||
      transport-api: "${TB_QUEUE_AWS_SQS_TA_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
 | 
			
		||||
      notifications: "${TB_QUEUE_AWS_SQS_NOTIFICATIONS_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
 | 
			
		||||
      js-executor: "${TB_QUEUE_AWS_SQS_JE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
 | 
			
		||||
      #    VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
 | 
			
		||||
  pubsub:
 | 
			
		||||
    project_id: "${TB_QUEUE_PUBSUB_PROJECT_ID:YOUR_PROJECT_ID}"
 | 
			
		||||
@ -263,7 +261,6 @@ queue:
 | 
			
		||||
      core: "${TB_QUEUE_PUBSUB_CORE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}"
 | 
			
		||||
      transport-api: "${TB_QUEUE_PUBSUB_TA_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}"
 | 
			
		||||
      notifications: "${TB_QUEUE_PUBSUB_NOTIFICATIONS_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}"
 | 
			
		||||
      js-executor: "${TB_QUEUE_PUBSUB_JE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}"
 | 
			
		||||
  service_bus:
 | 
			
		||||
    namespace_name: "${TB_QUEUE_SERVICE_BUS_NAMESPACE_NAME:YOUR_NAMESPACE_NAME}"
 | 
			
		||||
    sas_key_name: "${TB_QUEUE_SERVICE_BUS_SAS_KEY_NAME:YOUR_SAS_KEY_NAME}"
 | 
			
		||||
@ -274,7 +271,6 @@ queue:
 | 
			
		||||
      core: "${TB_QUEUE_SERVICE_BUS_CORE_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}"
 | 
			
		||||
      transport-api: "${TB_QUEUE_SERVICE_BUS_TA_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}"
 | 
			
		||||
      notifications: "${TB_QUEUE_SERVICE_BUS_NOTIFICATIONS_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}"
 | 
			
		||||
      js-executor: "${TB_QUEUE_SERVICE_BUS_JE_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}"
 | 
			
		||||
  rabbitmq:
 | 
			
		||||
    exchange_name: "${TB_QUEUE_RABBIT_MQ_EXCHANGE_NAME:}"
 | 
			
		||||
    host: "${TB_QUEUE_RABBIT_MQ_HOST:localhost}"
 | 
			
		||||
@ -290,7 +286,6 @@ queue:
 | 
			
		||||
      core: "${TB_QUEUE_RABBIT_MQ_CORE_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}"
 | 
			
		||||
      transport-api: "${TB_QUEUE_RABBIT_MQ_TA_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}"
 | 
			
		||||
      notifications: "${TB_QUEUE_RABBIT_MQ_NOTIFICATIONS_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}"
 | 
			
		||||
      js-executor: "${TB_QUEUE_RABBIT_MQ_JE_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}"
 | 
			
		||||
  partitions:
 | 
			
		||||
    hash_function_name: "${TB_QUEUE_PARTITIONS_HASH_FUNCTION_NAME:murmur3_128}"
 | 
			
		||||
    virtual_nodes_size: "${TB_QUEUE_PARTITIONS_VIRTUAL_NODES_SIZE:16}"
 | 
			
		||||
 | 
			
		||||
@ -191,7 +191,6 @@ queue:
 | 
			
		||||
      core: "${TB_QUEUE_KAFKA_CORE_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}"
 | 
			
		||||
      transport-api: "${TB_QUEUE_KAFKA_TA_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}"
 | 
			
		||||
      notifications: "${TB_QUEUE_KAFKA_NOTIFICATIONS_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}"
 | 
			
		||||
      js-executor: "${TB_QUEUE_KAFKA_JE_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:104857600;partitions:100;min.insync.replicas:1}"
 | 
			
		||||
  aws_sqs:
 | 
			
		||||
    use_default_credential_provider_chain: "${TB_QUEUE_AWS_SQS_USE_DEFAULT_CREDENTIAL_PROVIDER_CHAIN:false}"
 | 
			
		||||
    access_key_id: "${TB_QUEUE_AWS_SQS_ACCESS_KEY_ID:YOUR_KEY}"
 | 
			
		||||
@ -203,7 +202,6 @@ queue:
 | 
			
		||||
      core: "${TB_QUEUE_AWS_SQS_CORE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
 | 
			
		||||
      transport-api: "${TB_QUEUE_AWS_SQS_TA_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
 | 
			
		||||
      notifications: "${TB_QUEUE_AWS_SQS_NOTIFICATIONS_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
 | 
			
		||||
      js-executor: "${TB_QUEUE_AWS_SQS_JE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
 | 
			
		||||
      #    VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
 | 
			
		||||
  pubsub:
 | 
			
		||||
    project_id: "${TB_QUEUE_PUBSUB_PROJECT_ID:YOUR_PROJECT_ID}"
 | 
			
		||||
@ -215,7 +213,6 @@ queue:
 | 
			
		||||
      core: "${TB_QUEUE_PUBSUB_CORE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}"
 | 
			
		||||
      transport-api: "${TB_QUEUE_PUBSUB_TA_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}"
 | 
			
		||||
      notifications: "${TB_QUEUE_PUBSUB_NOTIFICATIONS_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}"
 | 
			
		||||
      js-executor: "${TB_QUEUE_PUBSUB_JE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}"
 | 
			
		||||
  service_bus:
 | 
			
		||||
    namespace_name: "${TB_QUEUE_SERVICE_BUS_NAMESPACE_NAME:YOUR_NAMESPACE_NAME}"
 | 
			
		||||
    sas_key_name: "${TB_QUEUE_SERVICE_BUS_SAS_KEY_NAME:YOUR_SAS_KEY_NAME}"
 | 
			
		||||
@ -226,7 +223,6 @@ queue:
 | 
			
		||||
      core: "${TB_QUEUE_SERVICE_BUS_CORE_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}"
 | 
			
		||||
      transport-api: "${TB_QUEUE_SERVICE_BUS_TA_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}"
 | 
			
		||||
      notifications: "${TB_QUEUE_SERVICE_BUS_NOTIFICATIONS_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}"
 | 
			
		||||
      js-executor: "${TB_QUEUE_SERVICE_BUS_JE_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}"
 | 
			
		||||
  rabbitmq:
 | 
			
		||||
    exchange_name: "${TB_QUEUE_RABBIT_MQ_EXCHANGE_NAME:}"
 | 
			
		||||
    host: "${TB_QUEUE_RABBIT_MQ_HOST:localhost}"
 | 
			
		||||
@ -242,7 +238,6 @@ queue:
 | 
			
		||||
      core: "${TB_QUEUE_RABBIT_MQ_CORE_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}"
 | 
			
		||||
      transport-api: "${TB_QUEUE_RABBIT_MQ_TA_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}"
 | 
			
		||||
      notifications: "${TB_QUEUE_RABBIT_MQ_NOTIFICATIONS_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}"
 | 
			
		||||
      js-executor: "${TB_QUEUE_RABBIT_MQ_JE_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}"
 | 
			
		||||
  partitions:
 | 
			
		||||
    hash_function_name: "${TB_QUEUE_PARTITIONS_HASH_FUNCTION_NAME:murmur3_128}"
 | 
			
		||||
    virtual_nodes_size: "${TB_QUEUE_PARTITIONS_VIRTUAL_NODES_SIZE:16}"
 | 
			
		||||
 | 
			
		||||
@ -137,7 +137,6 @@ queue:
 | 
			
		||||
      core: "${TB_QUEUE_KAFKA_CORE_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}"
 | 
			
		||||
      transport-api: "${TB_QUEUE_KAFKA_TA_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}"
 | 
			
		||||
      notifications: "${TB_QUEUE_KAFKA_NOTIFICATIONS_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:1048576000;partitions:1;min.insync.replicas:1}"
 | 
			
		||||
      js-executor: "${TB_QUEUE_KAFKA_JE_TOPIC_PROPERTIES:retention.ms:604800000;segment.bytes:26214400;retention.bytes:104857600;partitions:100;min.insync.replicas:1}"
 | 
			
		||||
    consumer-stats:
 | 
			
		||||
      enabled: "${TB_QUEUE_KAFKA_CONSUMER_STATS_ENABLED:true}"
 | 
			
		||||
      print-interval-ms: "${TB_QUEUE_KAFKA_CONSUMER_STATS_MIN_PRINT_INTERVAL_MS:60000}"
 | 
			
		||||
@ -153,7 +152,6 @@ queue:
 | 
			
		||||
      core: "${TB_QUEUE_AWS_SQS_CORE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
 | 
			
		||||
      transport-api: "${TB_QUEUE_AWS_SQS_TA_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
 | 
			
		||||
      notifications: "${TB_QUEUE_AWS_SQS_NOTIFICATIONS_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
 | 
			
		||||
      js-executor: "${TB_QUEUE_AWS_SQS_JE_QUEUE_PROPERTIES:VisibilityTimeout:30;MaximumMessageSize:262144;MessageRetentionPeriod:604800}"
 | 
			
		||||
      #    VisibilityTimeout in seconds;MaximumMessageSize in bytes;MessageRetentionPeriod in seconds
 | 
			
		||||
  pubsub:
 | 
			
		||||
    project_id: "${TB_QUEUE_PUBSUB_PROJECT_ID:YOUR_PROJECT_ID}"
 | 
			
		||||
@ -165,7 +163,6 @@ queue:
 | 
			
		||||
      core: "${TB_QUEUE_PUBSUB_CORE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}"
 | 
			
		||||
      transport-api: "${TB_QUEUE_PUBSUB_TA_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}"
 | 
			
		||||
      notifications: "${TB_QUEUE_PUBSUB_NOTIFICATIONS_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}"
 | 
			
		||||
      js-executor: "${TB_QUEUE_PUBSUB_JE_QUEUE_PROPERTIES:ackDeadlineInSec:30;messageRetentionInSec:604800}"
 | 
			
		||||
  service_bus:
 | 
			
		||||
    namespace_name: "${TB_QUEUE_SERVICE_BUS_NAMESPACE_NAME:YOUR_NAMESPACE_NAME}"
 | 
			
		||||
    sas_key_name: "${TB_QUEUE_SERVICE_BUS_SAS_KEY_NAME:YOUR_SAS_KEY_NAME}"
 | 
			
		||||
@ -176,7 +173,6 @@ queue:
 | 
			
		||||
      core: "${TB_QUEUE_SERVICE_BUS_CORE_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}"
 | 
			
		||||
      transport-api: "${TB_QUEUE_SERVICE_BUS_TA_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}"
 | 
			
		||||
      notifications: "${TB_QUEUE_SERVICE_BUS_NOTIFICATIONS_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}"
 | 
			
		||||
      js-executor: "${TB_QUEUE_SERVICE_BUS_JE_QUEUE_PROPERTIES:lockDurationInSec:30;maxSizeInMb:1024;messageTimeToLiveInSec:604800}"
 | 
			
		||||
  rabbitmq:
 | 
			
		||||
    exchange_name: "${TB_QUEUE_RABBIT_MQ_EXCHANGE_NAME:}"
 | 
			
		||||
    host: "${TB_QUEUE_RABBIT_MQ_HOST:localhost}"
 | 
			
		||||
@ -192,7 +188,6 @@ queue:
 | 
			
		||||
      core: "${TB_QUEUE_RABBIT_MQ_CORE_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}"
 | 
			
		||||
      transport-api: "${TB_QUEUE_RABBIT_MQ_TA_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}"
 | 
			
		||||
      notifications: "${TB_QUEUE_RABBIT_MQ_NOTIFICATIONS_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}"
 | 
			
		||||
      js-executor: "${TB_QUEUE_RABBIT_MQ_JE_QUEUE_PROPERTIES:x-max-length-bytes:1048576000;x-message-ttl:604800000}"
 | 
			
		||||
  partitions:
 | 
			
		||||
    hash_function_name: "${TB_QUEUE_PARTITIONS_HASH_FUNCTION_NAME:murmur3_128}"
 | 
			
		||||
    virtual_nodes_size: "${TB_QUEUE_PARTITIONS_VIRTUAL_NODES_SIZE:16}"
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user