elasticio-sailor-nodejs 2.7.1-dev6 → 2.7.2-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/run.js CHANGED
@@ -1,139 +1,139 @@
1
- /**
2
- * Entrypoint for starting task step.
3
- */
4
- const logger = require('./lib/logging.js');
5
- const Sailor = require('./lib/sailor.js').Sailor;
6
- const settings = require('./lib/settings.js');
7
- const { IPC } = require('./lib/ipc.js');
8
- const Q = require('q');
9
- const http = require('http');
10
- const https = require('https');
11
-
12
- let sailor;
13
- let sailorInit;
14
- let disconnectRequired;
15
-
16
- function prepareSandbox() {
17
- // enable keep alive by default to handle issues like https://github.com/elasticio/elasticio/issues/4874
18
- http.globalAgent = new http.Agent({
19
- keepAlive: true
20
- });
21
- https.globalAgent = new https.Agent({
22
- keepAlive: true
23
- });
24
- }
25
-
26
- async function putOutToSea(settings, ipc) {
27
- ipc.send('init:started');
28
- const deferred = Q.defer();
29
- sailorInit = deferred.promise;
30
- sailor = new Sailor(settings);
31
-
32
- //eslint-disable-next-line no-extra-boolean-cast
33
- if (!!settings.HOOK_SHUTDOWN) {
34
- disconnectRequired = false;
35
- //eslint-disable-next-line no-empty-function
36
- sailor.reportError = () => {
37
- };
38
- await sailor.prepare();
39
- await sailor.runHookShutdown();
40
- return;
41
- }
42
-
43
- disconnectRequired = true;
44
- await sailor.connect();
45
- await sailor.prepare();
46
-
47
- //eslint-disable-next-line no-extra-boolean-cast
48
- if (!!settings.STARTUP_REQUIRED) {
49
- await sailor.startup();
50
- }
51
-
52
- await sailor.runHookInit();
53
- await sailor.run();
54
- deferred.resolve();
55
- ipc.send('init:ended');
56
- }
57
-
58
- async function disconnectAndExit() {
59
- if (!disconnectRequired) {
60
- return;
61
- }
62
- disconnectRequired = false;
63
-
64
- try {
65
- logger.info('Disconnecting...');
66
- await sailor.disconnect();
67
- logger.info('Successfully disconnected');
68
- process.exit();
69
- } catch (err) {
70
- logger.error(err, 'Unable to disconnect');
71
- process.exit(-1);
72
- }
73
- }
74
-
75
- async function gracefulShutdown() {
76
- if (!disconnectRequired) {
77
- return;
78
- }
79
-
80
- if (!sailor) {
81
- logger.warn('Something went wrong – sailor is falsy');
82
- return;
83
- }
84
-
85
- // we connect to amqp, create channels, start listen a queue on init and interrupting this process with 'disconnect'
86
- // will lead to undefined behaviour
87
- logger.trace('Checking/waiting for init before graceful shutdown');
88
- await sailorInit;
89
- logger.trace('Waited an init before graceful shutdown');
90
-
91
- await sailor.scheduleShutdown();
92
- await disconnectAndExit();
93
- }
94
-
95
- async function run(settings, ipc) {
96
- prepareSandbox();
97
- try {
98
- await putOutToSea(settings, ipc);
99
- logger.info('Fully initialized and waiting for messages');
100
- } catch (e) {
101
- if (sailor && !sailor.amqpConnection.closed) {
102
- await sailor.reportError(e);
103
- }
104
- logger.criticalErrorAndExit('putOutToSea.catch', e);
105
- }
106
- }
107
-
108
- exports.__test__ = {
109
- disconnectOnly: function disconnectOnly() {
110
- if (!disconnectRequired) {
111
- return Promise.resolve();
112
- }
113
- return sailor.disconnect();
114
- },
115
- closeConsumerChannel: function closeConsumerChannel() {
116
- return sailor.amqpConnection.consumerChannel.close();
117
- }
118
- };
119
- exports.run = run;
120
- exports.putOutToSea = putOutToSea;
121
-
122
- if (require.main === module || process.mainModule.filename === __filename) {
123
- process.on('SIGTERM', function onSigterm() {
124
- logger.info('Received SIGTERM');
125
- gracefulShutdown();
126
- });
127
-
128
- process.on('SIGINT', function onSigint() {
129
- logger.info('Received SIGINT');
130
- gracefulShutdown();
131
- });
132
-
133
- process.on('uncaughtException', logger.criticalErrorAndExit.bind(logger, 'process.uncaughtException'));
134
- process.on('unhandledRejection', (err) => logger.error(err, 'process.unhandledRejection'));
135
-
136
- const ipc = new IPC();
137
-
138
- run(settings.readFrom(process.env), ipc);
139
- }
1
+ /**
2
+ * Entrypoint for starting task step.
3
+ */
4
+ const logger = require('./lib/logging.js');
5
+ const Sailor = require('./lib/sailor.js').Sailor;
6
+ const settings = require('./lib/settings.js');
7
+ const { IPC } = require('./lib/ipc.js');
8
+ const Q = require('q');
9
+ const http = require('http');
10
+ const https = require('https');
11
+
12
+ let sailor;
13
+ let sailorInit;
14
+ let disconnectRequired;
15
+
16
+ function prepareSandbox() {
17
+ // enable keep alive by default to handle issues like https://github.com/elasticio/elasticio/issues/4874
18
+ http.globalAgent = new http.Agent({
19
+ keepAlive: true
20
+ });
21
+ https.globalAgent = new https.Agent({
22
+ keepAlive: true
23
+ });
24
+ }
25
+
26
+ async function putOutToSea(settings, ipc) {
27
+ ipc.send('init:started');
28
+ const deferred = Q.defer();
29
+ sailorInit = deferred.promise;
30
+ sailor = new Sailor(settings);
31
+
32
+ //eslint-disable-next-line no-extra-boolean-cast
33
+ if (!!settings.HOOK_SHUTDOWN) {
34
+ disconnectRequired = false;
35
+ //eslint-disable-next-line no-empty-function
36
+ sailor.reportError = () => {
37
+ };
38
+ await sailor.prepare();
39
+ await sailor.runHookShutdown();
40
+ return;
41
+ }
42
+
43
+ disconnectRequired = true;
44
+ await sailor.connect();
45
+ await sailor.prepare();
46
+
47
+ //eslint-disable-next-line no-extra-boolean-cast
48
+ if (!!settings.STARTUP_REQUIRED) {
49
+ await sailor.startup();
50
+ }
51
+
52
+ await sailor.runHookInit();
53
+ await sailor.run();
54
+ deferred.resolve();
55
+ ipc.send('init:ended');
56
+ }
57
+
58
+ async function disconnectAndExit() {
59
+ if (!disconnectRequired) {
60
+ return;
61
+ }
62
+ disconnectRequired = false;
63
+
64
+ try {
65
+ logger.info('Disconnecting...');
66
+ await sailor.disconnect();
67
+ logger.info('Successfully disconnected');
68
+ process.exit();
69
+ } catch (err) {
70
+ logger.error(err, 'Unable to disconnect');
71
+ process.exit(-1);
72
+ }
73
+ }
74
+
75
+ async function gracefulShutdown() {
76
+ if (!disconnectRequired) {
77
+ return;
78
+ }
79
+
80
+ if (!sailor) {
81
+ logger.warn('Something went wrong – sailor is falsy');
82
+ return;
83
+ }
84
+
85
+ // we connect to amqp, create channels, start listen a queue on init and interrupting this process with 'disconnect'
86
+ // will lead to undefined behaviour
87
+ logger.trace('Checking/waiting for init before graceful shutdown');
88
+ await sailorInit;
89
+ logger.trace('Waited an init before graceful shutdown');
90
+
91
+ await sailor.scheduleShutdown();
92
+ await disconnectAndExit();
93
+ }
94
+
95
+ async function run(settings, ipc) {
96
+ prepareSandbox();
97
+ try {
98
+ await putOutToSea(settings, ipc);
99
+ logger.info('Fully initialized and waiting for messages');
100
+ } catch (e) {
101
+ if (sailor && !sailor.amqpConnection.closed) {
102
+ await sailor.reportError(e);
103
+ }
104
+ logger.criticalErrorAndExit('putOutToSea.catch', e);
105
+ }
106
+ }
107
+
108
+ exports.__test__ = {
109
+ disconnectOnly: function disconnectOnly() {
110
+ if (!disconnectRequired) {
111
+ return Promise.resolve();
112
+ }
113
+ return sailor.disconnect();
114
+ },
115
+ closeConsumerChannel: function closeConsumerChannel() {
116
+ return sailor.amqpConnection.consumerChannel.close();
117
+ }
118
+ };
119
+ exports.run = run;
120
+ exports.putOutToSea = putOutToSea;
121
+
122
+ if (require.main === module || process.mainModule.filename === __filename) {
123
+ process.on('SIGTERM', function onSigterm() {
124
+ logger.info('Received SIGTERM');
125
+ gracefulShutdown();
126
+ });
127
+
128
+ process.on('SIGINT', function onSigint() {
129
+ logger.info('Received SIGINT');
130
+ gracefulShutdown();
131
+ });
132
+
133
+ process.on('uncaughtException', logger.criticalErrorAndExit.bind(logger, 'process.uncaughtException'));
134
+ process.on('unhandledRejection', (err) => logger.error(err, 'process.unhandledRejection'));
135
+
136
+ const ipc = new IPC();
137
+
138
+ run(settings.readFrom(process.env), ipc);
139
+ }
package/runService.js CHANGED
@@ -1,19 +1,19 @@
1
- /**
2
- * Entrypoint for starting service which will handle verifyCredentials and selectModel requests.
3
- */
4
- const logger = require('./lib/logging');
5
- const service = require('./lib/service');
6
- const debug = require('debug')('sailor');
7
-
8
- const serviceMethod = process.argv[2];
9
-
10
- debug('About to execute %s', serviceMethod);
11
-
12
- service.processService(serviceMethod, process.env)
13
- .catch(logger.criticalErrorAndExit.bind(logger, 'processService.catch'))
14
- .done(() => {
15
- process.exit(0);
16
- });
17
-
18
- process.on('uncaughtException', logger.criticalErrorAndExit.bind(logger, 'process.uncaughtException'));
19
- process.on('unhandledRejection', (err) => logger.error(err, 'process.unhandledRejection'));
1
+ /**
2
+ * Entrypoint for starting service which will handle verifyCredentials and selectModel requests.
3
+ */
4
+ const logger = require('./lib/logging');
5
+ const service = require('./lib/service');
6
+ const debug = require('debug')('sailor');
7
+
8
+ const serviceMethod = process.argv[2];
9
+
10
+ debug('About to execute %s', serviceMethod);
11
+
12
+ service.processService(serviceMethod, process.env)
13
+ .catch(logger.criticalErrorAndExit.bind(logger, 'processService.catch'))
14
+ .done(() => {
15
+ process.exit(0);
16
+ });
17
+
18
+ process.on('uncaughtException', logger.criticalErrorAndExit.bind(logger, 'process.uncaughtException'));
19
+ process.on('unhandledRejection', (err) => logger.error(err, 'process.unhandledRejection'));
package/test.json DELETED
@@ -1,51 +0,0 @@
1
- {
2
- "FLOW_ID": "655b5af2b8af5c0012709916",
3
- "EXEC_ID": "a6b50cde3d2e428699e58c33ded6399a",
4
- "STEP_ID": "step_1",
5
- "CONTAINER_ID": "90ce05f4-405a-4ae9-942e-e23aaa8ba269",
6
- "WORKSPACE_ID": "59d34d9af1ffe00019df5f3f",
7
- "USER_ID": "65036db6240e8d0012dea002",
8
- "COMP_ID": "655a6a90c23ee2001208635c",
9
- "FUNCTION": "getPetsByStatus",
10
- "API_URI": "http://api-service.platform.svc.cluster.local:9000",
11
- "API_USERNAME": "task-655b5af2b8af5c0012709916",
12
- "API_KEY": "363d316d-e3de-4d06-b15f-04d1b20ac461",
13
- "AMQP_URI": "amqp://org-user-59d34d9af1ffe00019df5f3f:38e1add4-db32-4bb8-b88f-7b307fe8b54d@haproxy-service.platform.svc.cluster.local",
14
- "LISTEN_MESSAGES_ON": "59d34d9af1ffe00019df5f3f:655b5af2b8af5c0012709916/debug:step_1:messages",
15
- "PUBLISH_MESSAGES_TO": "59d34d9af1ffe00019df5f3f_org",
16
- "DATA_ROUTING_KEY": "59d34d9af1ffe00019df5f3f.655b5af2b8af5c0012709916/debug.step_1.message_debug",
17
- "ERROR_ROUTING_KEY": "59d34d9af1ffe00019df5f3f.655b5af2b8af5c0012709916/debug.step_1.error_debug",
18
- "REBOUND_ROUTING_KEY": "59d34d9af1ffe00019df5f3f.655b5af2b8af5c0012709916/debug.step_1.rebound",
19
- "SNAPSHOT_ROUTING_KEY": "59d34d9af1ffe00019df5f3f.655b5af2b8af5c0012709916/debug.step_1.snapshot",
20
- "MESSAGE_CRYPTO_IV": "5AolQLkeqZU5K9y0",
21
- "MESSAGE_CRYPTO_PASSWORD": "978f69f8d112787e0abd60bad600237f",
22
- "REBOUND_INITIAL_EXPIRATION": 15000,
23
- "REBOUND_LIMIT": 20,
24
- "COMPONENT_PATH": "",
25
- "RABBITMQ_PREFETCH_SAILOR": 1,
26
- "STARTUP_REQUIRED": true,
27
- "HOOK_SHUTDOWN": false,
28
- "API_REQUEST_RETRY_ATTEMPTS": 3,
29
- "API_REQUEST_RETRY_DELAY": 100,
30
- "DATA_RATE_LIMIT": 10,
31
- "ERROR_RATE_LIMIT": 2,
32
- "SNAPSHOT_RATE_LIMIT": 2,
33
- "RATE_INTERVAL": 100,
34
- "PROCESS_AMQP_DRAIN": true,
35
- "AMQP_PUBLISH_RETRY_DELAY": 100,
36
- "AMQP_PUBLISH_RETRY_ATTEMPTS": null,
37
- "AMQP_PUBLISH_MAX_RETRY_DELAY": 300000,
38
- "AMQP_PERSISTENT_MESSAGES": false,
39
- "OUTGOING_MESSAGE_SIZE_LIMIT": 10485760,
40
- "NO_SELF_PASSTRHOUGH": false,
41
- "PROTOCOL_VERSION": 1,
42
- "NO_ERROR_REPLIES": false,
43
- "INPUT_FORMAT": "default",
44
- "OBJECT_STORAGE_URI": "http://maester-service.platform.svc.cluster.local:3002",
45
- "OBJECT_STORAGE_TOKEN": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZW5hbnRJZCI6IjU2Y2FmOGU3MDdlNDI4YTA3ZTZjNTQ1ZCIsImNvbnRyYWN0SWQiOiI1YjYyYzkxYmZkOThlYTAwMTEyZDU2NjgiLCJ3b3Jrc3BhY2VJZCI6IjU5ZDM0ZDlhZjFmZmUwMDAxOWRmNWYzZiIsImZsb3dJZCI6IioiLCJ1c2VySWQiOiI2NTAzNmRiNjI0MGU4ZDAwMTJkZWEwMDIiLCJpYXQiOjE3MDA0ODU4NzV9.KkAKKNXLKOB3xS2IkMarKCCXIdh1uqhd1e3zvQrJge0",
46
- "OBJECT_STORAGE_SIZE_THRESHOLD": 1048576,
47
- "EMIT_LIGHTWEIGHT_MESSAGE": true,
48
- "AMQP_RECONNECT_ATTEMPTS": 3,
49
- "AMQP_RECONNECT_TIMEOUT": 100,
50
- "WAIT_MESSAGES_TIMEOUT": 50
51
- }
package/testOk.json DELETED
@@ -1,51 +0,0 @@
1
- {
2
- "FLOW_ID": "655b5acb6d67620012092d95",
3
- "EXEC_ID": "dff31e91497a4ca9abbb785265cda160",
4
- "STEP_ID": "step_1",
5
- "CONTAINER_ID": "596e4623-3ae5-4a08-8244-7757f9aec5d7",
6
- "WORKSPACE_ID": "59d34d9af1ffe00019df5f3f",
7
- "USER_ID": "65036db6240e8d0012dea002",
8
- "COMP_ID": "655a6a90c23ee2001208635c",
9
- "FUNCTION": "getPetsByStatus",
10
- "API_URI": "http://api-service.platform.svc.cluster.local:9000",
11
- "API_USERNAME": "task-655b5acb6d67620012092d95",
12
- "API_KEY": "b1888dd3-4710-4c91-b15e-d13d9d87db39",
13
- "AMQP_URI": "amqp://org-user-59d34d9af1ffe00019df5f3f:38e1add4-db32-4bb8-b88f-7b307fe8b54d@haproxy-service.platform.svc.cluster.local",
14
- "LISTEN_MESSAGES_ON": "59d34d9af1ffe00019df5f3f:655b5acb6d67620012092d95/debug:step_1:messages",
15
- "PUBLISH_MESSAGES_TO": "59d34d9af1ffe00019df5f3f_org",
16
- "DATA_ROUTING_KEY": "59d34d9af1ffe00019df5f3f.655b5acb6d67620012092d95/debug.step_1.message_debug",
17
- "ERROR_ROUTING_KEY": "59d34d9af1ffe00019df5f3f.655b5acb6d67620012092d95/debug.step_1.error_debug",
18
- "REBOUND_ROUTING_KEY": "59d34d9af1ffe00019df5f3f.655b5acb6d67620012092d95/debug.step_1.rebound",
19
- "SNAPSHOT_ROUTING_KEY": "59d34d9af1ffe00019df5f3f.655b5acb6d67620012092d95/debug.step_1.snapshot",
20
- "MESSAGE_CRYPTO_IV": "5AolQLkeqZU5K9y0",
21
- "MESSAGE_CRYPTO_PASSWORD": "978f69f8d112787e0abd60bad600237f",
22
- "REBOUND_INITIAL_EXPIRATION": 15000,
23
- "REBOUND_LIMIT": 20,
24
- "COMPONENT_PATH": "",
25
- "RABBITMQ_PREFETCH_SAILOR": 1,
26
- "STARTUP_REQUIRED": true,
27
- "HOOK_SHUTDOWN": false,
28
- "API_REQUEST_RETRY_ATTEMPTS": 3,
29
- "API_REQUEST_RETRY_DELAY": 100,
30
- "DATA_RATE_LIMIT": 10,
31
- "ERROR_RATE_LIMIT": 2,
32
- "SNAPSHOT_RATE_LIMIT": 2,
33
- "RATE_INTERVAL": 100,
34
- "PROCESS_AMQP_DRAIN": true,
35
- "AMQP_PUBLISH_RETRY_DELAY": 100,
36
- "AMQP_PUBLISH_RETRY_ATTEMPTS": null,
37
- "AMQP_PUBLISH_MAX_RETRY_DELAY": 300000,
38
- "AMQP_PERSISTENT_MESSAGES": false,
39
- "OUTGOING_MESSAGE_SIZE_LIMIT": 10485760,
40
- "NO_SELF_PASSTRHOUGH": false,
41
- "PROTOCOL_VERSION": 1,
42
- "NO_ERROR_REPLIES": false,
43
- "INPUT_FORMAT": "default",
44
- "OBJECT_STORAGE_URI": "http://maester-service.platform.svc.cluster.local:3002",
45
- "OBJECT_STORAGE_TOKEN": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZW5hbnRJZCI6IjU2Y2FmOGU3MDdlNDI4YTA3ZTZjNTQ1ZCIsImNvbnRyYWN0SWQiOiI1YjYyYzkxYmZkOThlYTAwMTEyZDU2NjgiLCJ3b3Jrc3BhY2VJZCI6IjU5ZDM0ZDlhZjFmZmUwMDAxOWRmNWYzZiIsImZsb3dJZCI6IioiLCJ1c2VySWQiOiI2NTAzNmRiNjI0MGU4ZDAwMTJkZWEwMDIiLCJpYXQiOjE3MDA0ODU4MzV9.pQLIkxUOxTZEIsHUb9U745PabQeWTLRZsrFvS8c9wkE",
46
- "OBJECT_STORAGE_SIZE_THRESHOLD": 1048576,
47
- "EMIT_LIGHTWEIGHT_MESSAGE": true,
48
- "AMQP_RECONNECT_ATTEMPTS": 3,
49
- "AMQP_RECONNECT_TIMEOUT": 100,
50
- "WAIT_MESSAGES_TIMEOUT": 50
51
- }
package/testOk1.json DELETED
@@ -1,51 +0,0 @@
1
- {
2
- "FLOW_ID": "655b5a60b8af5c0012707717",
3
- "EXEC_ID": "1429c9e73f3b40e8ab4946aaced65750",
4
- "STEP_ID": "step_1",
5
- "CONTAINER_ID": "727f4fce-777a-461d-8e18-5900cf6649b3",
6
- "WORKSPACE_ID": "59d34d9af1ffe00019df5f3f",
7
- "USER_ID": "65036db6240e8d0012dea002",
8
- "COMP_ID": "655a6a90c23ee2001208635c",
9
- "FUNCTION": "getPetsByStatus",
10
- "API_URI": "http://api-service.platform.svc.cluster.local:9000",
11
- "API_USERNAME": "task-655b5a60b8af5c0012707717",
12
- "API_KEY": "6677a88c-8224-41c8-a873-52a8cf9929a7",
13
- "AMQP_URI": "amqp://org-user-59d34d9af1ffe00019df5f3f:38e1add4-db32-4bb8-b88f-7b307fe8b54d@haproxy-service.platform.svc.cluster.local",
14
- "LISTEN_MESSAGES_ON": "59d34d9af1ffe00019df5f3f:655b5a60b8af5c0012707717/debug:step_1:messages",
15
- "PUBLISH_MESSAGES_TO": "59d34d9af1ffe00019df5f3f_org",
16
- "DATA_ROUTING_KEY": "59d34d9af1ffe00019df5f3f.655b5a60b8af5c0012707717/debug.step_1.message_debug",
17
- "ERROR_ROUTING_KEY": "59d34d9af1ffe00019df5f3f.655b5a60b8af5c0012707717/debug.step_1.error_debug",
18
- "REBOUND_ROUTING_KEY": "59d34d9af1ffe00019df5f3f.655b5a60b8af5c0012707717/debug.step_1.rebound",
19
- "SNAPSHOT_ROUTING_KEY": "59d34d9af1ffe00019df5f3f.655b5a60b8af5c0012707717/debug.step_1.snapshot",
20
- "MESSAGE_CRYPTO_IV": "5AolQLkeqZU5K9y0",
21
- "MESSAGE_CRYPTO_PASSWORD": "978f69f8d112787e0abd60bad600237f",
22
- "REBOUND_INITIAL_EXPIRATION": 15000,
23
- "REBOUND_LIMIT": 20,
24
- "COMPONENT_PATH": "",
25
- "RABBITMQ_PREFETCH_SAILOR": 1,
26
- "STARTUP_REQUIRED": true,
27
- "HOOK_SHUTDOWN": false,
28
- "API_REQUEST_RETRY_ATTEMPTS": 3,
29
- "API_REQUEST_RETRY_DELAY": 100,
30
- "DATA_RATE_LIMIT": 10,
31
- "ERROR_RATE_LIMIT": 2,
32
- "SNAPSHOT_RATE_LIMIT": 2,
33
- "RATE_INTERVAL": 100,
34
- "PROCESS_AMQP_DRAIN": true,
35
- "AMQP_PUBLISH_RETRY_DELAY": 100,
36
- "AMQP_PUBLISH_RETRY_ATTEMPTS": null,
37
- "AMQP_PUBLISH_MAX_RETRY_DELAY": 300000,
38
- "AMQP_PERSISTENT_MESSAGES": false,
39
- "OUTGOING_MESSAGE_SIZE_LIMIT": 10485760,
40
- "NO_SELF_PASSTRHOUGH": false,
41
- "PROTOCOL_VERSION": 1,
42
- "NO_ERROR_REPLIES": false,
43
- "INPUT_FORMAT": "default",
44
- "OBJECT_STORAGE_URI": "http://maester-service.platform.svc.cluster.local:3002",
45
- "OBJECT_STORAGE_TOKEN": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZW5hbnRJZCI6IjU2Y2FmOGU3MDdlNDI4YTA3ZTZjNTQ1ZCIsImNvbnRyYWN0SWQiOiI1YjYyYzkxYmZkOThlYTAwMTEyZDU2NjgiLCJ3b3Jrc3BhY2VJZCI6IjU5ZDM0ZDlhZjFmZmUwMDAxOWRmNWYzZiIsImZsb3dJZCI6IioiLCJ1c2VySWQiOiI2NTAzNmRiNjI0MGU4ZDAwMTJkZWEwMDIiLCJpYXQiOjE3MDA0ODU3Mjh9.Wzc4R3xJA3OOpW3G8zMW-KnqvnlMZit77r4Gz2y_DL4",
46
- "OBJECT_STORAGE_SIZE_THRESHOLD": 1048576,
47
- "EMIT_LIGHTWEIGHT_MESSAGE": true,
48
- "AMQP_RECONNECT_ATTEMPTS": 3,
49
- "AMQP_RECONNECT_TIMEOUT": 100,
50
- "WAIT_MESSAGES_TIMEOUT": 50
51
- }