2020-04-27 01:12:23 +03:00
|
|
|
///
|
2024-01-09 10:46:16 +02:00
|
|
|
/// Copyright © 2016-2024 The Thingsboard Authors
|
2020-04-27 01:12:23 +03:00
|
|
|
///
|
|
|
|
|
/// Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
|
/// you may not use this file except in compliance with the License.
|
|
|
|
|
/// You may obtain a copy of the License at
|
|
|
|
|
///
|
|
|
|
|
/// http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
|
///
|
|
|
|
|
/// Unless required by applicable law or agreed to in writing, software
|
|
|
|
|
/// distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
|
/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
|
/// See the License for the specific language governing permissions and
|
|
|
|
|
/// limitations under the License.
|
|
|
|
|
///
|
|
|
|
|
|
2022-06-01 19:14:09 +03:00
|
|
|
import { BaseData } from '@shared/models/base-data';
|
2022-02-18 16:41:24 +02:00
|
|
|
import { TenantId } from '@shared/models/id/tenant-id';
|
2022-06-01 19:14:09 +03:00
|
|
|
import { QueueId } from '@shared/models/id/queue-id';
|
2023-11-23 17:56:04 +02:00
|
|
|
import { HasTenantId } from '@shared/models/entity.models';
|
2022-02-18 16:41:24 +02:00
|
|
|
|
2020-04-27 01:12:23 +03:00
|
|
|
export enum ServiceType {
|
|
|
|
|
TB_CORE = 'TB_CORE',
|
|
|
|
|
TB_RULE_ENGINE = 'TB_RULE_ENGINE',
|
|
|
|
|
TB_TRANSPORT = 'TB_TRANSPORT',
|
|
|
|
|
JS_EXECUTOR = 'JS_EXECUTOR'
|
|
|
|
|
}
|
2022-02-18 16:41:24 +02:00
|
|
|
|
|
|
|
|
export enum QueueSubmitStrategyTypes {
|
|
|
|
|
SEQUENTIAL_BY_ORIGINATOR = 'SEQUENTIAL_BY_ORIGINATOR',
|
|
|
|
|
SEQUENTIAL_BY_TENANT = 'SEQUENTIAL_BY_TENANT',
|
|
|
|
|
SEQUENTIAL = 'SEQUENTIAL',
|
|
|
|
|
BURST = 'BURST',
|
|
|
|
|
BATCH = 'BATCH'
|
|
|
|
|
}
|
|
|
|
|
|
2022-06-01 19:14:09 +03:00
|
|
|
export interface QueueStrategyData {
|
|
|
|
|
label: string;
|
|
|
|
|
hint: string;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const QueueSubmitStrategyTypesMap = new Map<QueueSubmitStrategyTypes, QueueStrategyData>(
|
|
|
|
|
[
|
|
|
|
|
[QueueSubmitStrategyTypes.SEQUENTIAL_BY_ORIGINATOR, {
|
|
|
|
|
label: 'queue.strategies.sequential-by-originator-label',
|
|
|
|
|
hint: 'queue.strategies.sequential-by-originator-hint',
|
|
|
|
|
}],
|
|
|
|
|
[QueueSubmitStrategyTypes.SEQUENTIAL_BY_TENANT, {
|
|
|
|
|
label: 'queue.strategies.sequential-by-tenant-label',
|
|
|
|
|
hint: 'queue.strategies.sequential-by-tenant-hint',
|
|
|
|
|
}],
|
|
|
|
|
[QueueSubmitStrategyTypes.SEQUENTIAL, {
|
|
|
|
|
label: 'queue.strategies.sequential-label',
|
|
|
|
|
hint: 'queue.strategies.sequential-hint',
|
|
|
|
|
}],
|
|
|
|
|
[QueueSubmitStrategyTypes.BURST, {
|
|
|
|
|
label: 'queue.strategies.burst-label',
|
|
|
|
|
hint: 'queue.strategies.burst-hint',
|
|
|
|
|
}],
|
|
|
|
|
[QueueSubmitStrategyTypes.BATCH, {
|
|
|
|
|
label: 'queue.strategies.batch-label',
|
|
|
|
|
hint: 'queue.strategies.batch-hint',
|
|
|
|
|
}]
|
|
|
|
|
]);
|
|
|
|
|
|
2022-02-18 16:41:24 +02:00
|
|
|
export enum QueueProcessingStrategyTypes {
|
|
|
|
|
RETRY_FAILED_AND_TIMED_OUT = 'RETRY_FAILED_AND_TIMED_OUT',
|
|
|
|
|
SKIP_ALL_FAILURES = 'SKIP_ALL_FAILURES',
|
|
|
|
|
SKIP_ALL_FAILURES_AND_TIMED_OUT = 'SKIP_ALL_FAILURES_AND_TIMED_OUT',
|
|
|
|
|
RETRY_ALL = 'RETRY_ALL',
|
|
|
|
|
RETRY_FAILED = 'RETRY_FAILED',
|
|
|
|
|
RETRY_TIMED_OUT = 'RETRY_TIMED_OUT'
|
|
|
|
|
}
|
|
|
|
|
|
2022-06-01 19:14:09 +03:00
|
|
|
export const QueueProcessingStrategyTypesMap = new Map<QueueProcessingStrategyTypes, QueueStrategyData>(
|
|
|
|
|
[
|
|
|
|
|
[QueueProcessingStrategyTypes.RETRY_FAILED_AND_TIMED_OUT, {
|
|
|
|
|
label: 'queue.strategies.retry-failed-and-timeout-label',
|
2022-06-06 13:33:01 +03:00
|
|
|
hint: 'queue.strategies.retry-failed-and-timeout-hint',
|
2022-06-01 19:14:09 +03:00
|
|
|
}],
|
|
|
|
|
[QueueProcessingStrategyTypes.SKIP_ALL_FAILURES, {
|
|
|
|
|
label: 'queue.strategies.skip-all-failures-label',
|
|
|
|
|
hint: 'queue.strategies.skip-all-failures-hint',
|
|
|
|
|
}],
|
|
|
|
|
[QueueProcessingStrategyTypes.SKIP_ALL_FAILURES_AND_TIMED_OUT, {
|
|
|
|
|
label: 'queue.strategies.skip-all-failures-and-timeouts-label',
|
|
|
|
|
hint: 'queue.strategies.skip-all-failures-and-timeouts-hint',
|
|
|
|
|
}],
|
|
|
|
|
[QueueProcessingStrategyTypes.RETRY_ALL, {
|
|
|
|
|
label: 'queue.strategies.retry-all-label',
|
|
|
|
|
hint: 'queue.strategies.retry-all-hint',
|
|
|
|
|
}],
|
|
|
|
|
[QueueProcessingStrategyTypes.RETRY_FAILED, {
|
|
|
|
|
label: 'queue.strategies.retry-failed-label',
|
|
|
|
|
hint: 'queue.strategies.retry-failed-hint',
|
|
|
|
|
}],
|
|
|
|
|
[QueueProcessingStrategyTypes.RETRY_TIMED_OUT, {
|
|
|
|
|
label: 'queue.strategies.retry-timeout-label',
|
|
|
|
|
hint: 'queue.strategies.retry-timeout-hint',
|
|
|
|
|
}]
|
|
|
|
|
]);
|
|
|
|
|
|
2023-11-23 17:56:04 +02:00
|
|
|
export interface QueueInfo extends BaseData<QueueId>, HasTenantId {
|
2022-05-25 18:45:00 +03:00
|
|
|
generatedId?: string;
|
2022-04-29 19:18:11 +03:00
|
|
|
name: string;
|
2022-02-18 16:41:24 +02:00
|
|
|
packProcessingTimeout: number;
|
|
|
|
|
partitions: number;
|
2022-04-29 19:18:11 +03:00
|
|
|
consumerPerPartition: boolean;
|
2022-02-18 16:41:24 +02:00
|
|
|
pollInterval: number;
|
|
|
|
|
processingStrategy: {
|
2024-05-22 12:11:32 +03:00
|
|
|
type: QueueProcessingStrategyTypes;
|
|
|
|
|
retries: number;
|
|
|
|
|
failurePercentage: number;
|
|
|
|
|
pauseBetweenRetries: number;
|
|
|
|
|
maxPauseBetweenRetries: number;
|
2022-02-18 16:41:24 +02:00
|
|
|
};
|
|
|
|
|
submitStrategy: {
|
2024-05-22 12:11:32 +03:00
|
|
|
type: QueueSubmitStrategyTypes;
|
|
|
|
|
batchSize: number;
|
2022-02-18 16:41:24 +02:00
|
|
|
};
|
2022-04-29 19:18:11 +03:00
|
|
|
tenantId?: TenantId;
|
2022-02-18 16:41:24 +02:00
|
|
|
topic: string;
|
2022-05-11 14:19:00 +03:00
|
|
|
additionalInfo: {
|
|
|
|
|
description?: string;
|
2023-07-28 12:06:04 +03:00
|
|
|
customProperties?: string;
|
2024-05-22 12:11:32 +03:00
|
|
|
duplicateMsgToAllPartitions?: boolean;
|
2022-05-11 14:19:00 +03:00
|
|
|
};
|
2022-02-18 16:41:24 +02:00
|
|
|
}
|
2024-06-04 13:18:18 +03:00
|
|
|
|
|
|
|
|
export interface QueueStatisticsInfo extends BaseData<QueueId>, HasTenantId {
|
|
|
|
|
queueName: string;
|
|
|
|
|
serviceId: string;
|
|
|
|
|
name?: string;
|
|
|
|
|
}
|