@forklaunch/implementation-worker-redis 0.1.3 → 0.1.4

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.
Files changed (49) hide show
  1. package/lib/__test__/schemaEquality.test.d.ts +2 -0
  2. package/lib/__test__/schemaEquality.test.d.ts.map +1 -0
  3. package/lib/__test__/schemaEquality.test.js +13 -0
  4. package/lib/consumers/index.d.ts +2 -0
  5. package/lib/consumers/index.d.ts.map +1 -0
  6. package/lib/consumers/index.js +1 -0
  7. package/lib/consumers/redisWorker.consumer.d.ts +17 -0
  8. package/lib/consumers/redisWorker.consumer.d.ts.map +1 -0
  9. package/lib/consumers/redisWorker.consumer.js +38 -0
  10. package/lib/eject/consumers/index.ts +1 -0
  11. package/lib/eject/consumers/redisWorker.consumer.ts +61 -0
  12. package/lib/eject/domain/schemas/index.ts +1 -0
  13. package/lib/eject/domain/schemas/redisWorker.schema.ts +7 -0
  14. package/lib/eject/producers/index.ts +1 -0
  15. package/lib/eject/producers/redisWorker.producer.ts +24 -0
  16. package/lib/eject/types/index.ts +1 -0
  17. package/lib/eject/types/redisWorker.types.ts +5 -0
  18. package/lib/jest.config.d.ts +4 -0
  19. package/lib/jest.config.d.ts.map +1 -0
  20. package/lib/jest.config.js +19 -0
  21. package/lib/producers/index.d.ts +2 -0
  22. package/lib/producers/index.d.ts.map +1 -0
  23. package/lib/producers/index.js +1 -0
  24. package/lib/producers/redisWorker.producer.d.ts +13 -0
  25. package/lib/producers/redisWorker.producer.d.ts.map +1 -0
  26. package/lib/producers/redisWorker.producer.js +17 -0
  27. package/lib/schemas/index.d.ts +2 -0
  28. package/lib/schemas/index.d.ts.map +1 -0
  29. package/lib/schemas/index.js +1 -0
  30. package/lib/schemas/redisWorker.schema.d.ts +12 -0
  31. package/lib/schemas/redisWorker.schema.d.ts.map +1 -0
  32. package/lib/schemas/redisWorker.schema.js +4 -0
  33. package/lib/schemas/typebox/redisWorker.schema.d.ts +6 -0
  34. package/lib/schemas/typebox/redisWorker.schema.d.ts.map +1 -0
  35. package/lib/schemas/typebox/redisWorker.schema.js +6 -0
  36. package/lib/schemas/zod/redisWorker.schema.d.ts +6 -0
  37. package/lib/schemas/zod/redisWorker.schema.d.ts.map +1 -0
  38. package/lib/schemas/zod/redisWorker.schema.js +6 -0
  39. package/lib/tsconfig.tsbuildinfo +1 -0
  40. package/lib/types/index.d.ts +2 -0
  41. package/lib/types/index.d.ts.map +1 -0
  42. package/lib/types/index.js +1 -0
  43. package/lib/types/redisWorker.types.d.ts +6 -0
  44. package/lib/types/redisWorker.types.d.ts.map +1 -0
  45. package/lib/types/redisWorker.types.js +1 -0
  46. package/lib/vitest.config.d.ts +3 -0
  47. package/lib/vitest.config.d.ts.map +1 -0
  48. package/lib/vitest.config.js +7 -0
  49. package/package.json +2 -2
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=schemaEquality.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemaEquality.test.d.ts","sourceRoot":"","sources":["../../__test__/schemaEquality.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import { isTrue } from '@forklaunch/common';
2
+ import { testSchemaEquality } from '@forklaunch/core/test';
3
+ import { RedisWorkerOptionsSchema as TypeboxRedisWorkerOptionsSchema } from '../schemas/typebox/redisWorker.schema';
4
+ import { RedisWorkerOptionsSchema as ZodRedisWorkerOptionsSchema } from '../schemas/zod/redisWorker.schema';
5
+ describe('schema equality', () => {
6
+ it('should be equal for bullmq worker', () => {
7
+ expect(isTrue(testSchemaEquality(ZodRedisWorkerOptionsSchema, TypeboxRedisWorkerOptionsSchema, {
8
+ pageSize: 10,
9
+ retries: 1,
10
+ interval: 1000
11
+ }))).toBeTruthy();
12
+ });
13
+ });
@@ -0,0 +1,2 @@
1
+ export * from './redisWorker.consumer';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../consumers/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1 @@
1
+ export * from './redisWorker.consumer';
@@ -0,0 +1,17 @@
1
+ import { TtlCache } from '@forklaunch/core/cache';
2
+ import { WorkerConsumer } from '@forklaunch/interfaces-worker/interfaces';
3
+ import { WorkerEventEntity, WorkerFailureHandler, WorkerProcessFunction } from '@forklaunch/interfaces-worker/types';
4
+ import { WorkerOptions } from '../types/redisWorker.types';
5
+ export declare class RedisWorkerConsumer<EventEntity extends WorkerEventEntity, Options extends WorkerOptions> implements WorkerConsumer<EventEntity> {
6
+ protected readonly queueName: string;
7
+ protected readonly cache: TtlCache;
8
+ protected readonly options: Options;
9
+ protected readonly processEvents: WorkerProcessFunction<EventEntity>;
10
+ protected readonly failureHandler: WorkerFailureHandler<EventEntity>;
11
+ constructor(queueName: string, cache: TtlCache, options: Options, processEvents: WorkerProcessFunction<EventEntity>, failureHandler: WorkerFailureHandler<EventEntity>);
12
+ private retrieveEvents;
13
+ private updateEvents;
14
+ peekEvents(): Promise<EventEntity[]>;
15
+ start(): Promise<void>;
16
+ }
17
+ //# sourceMappingURL=redisWorker.consumer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redisWorker.consumer.d.ts","sourceRoot":"","sources":["../../consumers/redisWorker.consumer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1E,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,qBAAa,mBAAmB,CAC9B,WAAW,SAAS,iBAAiB,EACrC,OAAO,SAAS,aAAa,CAC7B,YAAW,cAAc,CAAC,WAAW,CAAC;IAGpC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM;IACpC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ;IAClC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO;IACnC,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,qBAAqB,CAAC,WAAW,CAAC;IACpE,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,oBAAoB,CAAC,WAAW,CAAC;gBAJjD,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,qBAAqB,CAAC,WAAW,CAAC,EACjD,cAAc,EAAE,oBAAoB,CAAC,WAAW,CAAC;YAGxD,cAAc;YAUd,YAAY;IAYpB,UAAU,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAQpC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ7B"}
@@ -0,0 +1,38 @@
1
+ export class RedisWorkerConsumer {
2
+ queueName;
3
+ cache;
4
+ options;
5
+ processEvents;
6
+ failureHandler;
7
+ constructor(queueName, cache, options, processEvents, failureHandler) {
8
+ this.queueName = queueName;
9
+ this.cache = cache;
10
+ this.options = options;
11
+ this.processEvents = processEvents;
12
+ this.failureHandler = failureHandler;
13
+ }
14
+ async retrieveEvents() {
15
+ const events = (await this.cache.dequeueBatchRecords(this.queueName, this.options.pageSize)).filter((event) => event != null);
16
+ return events;
17
+ }
18
+ async updateEvents(events) {
19
+ await this.cache.enqueueBatchRecords(this.queueName, events
20
+ .filter((event) => event != null && event.retryCount <= 3)
21
+ .map((event) => ({
22
+ ...event,
23
+ retryCount: event.retryCount + 1
24
+ })));
25
+ }
26
+ async peekEvents() {
27
+ const events = await this.cache.peekQueueRecords(this.queueName, this.options.pageSize);
28
+ return events;
29
+ }
30
+ async start() {
31
+ setInterval(async () => {
32
+ const events = await this.retrieveEvents();
33
+ const failedEvents = await this.processEvents(events);
34
+ await this.failureHandler(failedEvents);
35
+ await this.updateEvents(failedEvents.map((event) => event.value));
36
+ }, this.options.interval);
37
+ }
38
+ }
@@ -0,0 +1 @@
1
+ export * from './redisWorker.consumer';
@@ -0,0 +1,61 @@
1
+ import { TtlCache } from '@forklaunch/core/cache';
2
+ import { WorkerConsumer } from '@forklaunch/interfaces-worker/interfaces';
3
+ import {
4
+ WorkerEventEntity,
5
+ WorkerFailureHandler,
6
+ WorkerProcessFunction
7
+ } from '@forklaunch/interfaces-worker/types';
8
+ import { WorkerOptions } from '../types/redisWorker.types';
9
+
10
+ export class RedisWorkerConsumer<
11
+ EventEntity extends WorkerEventEntity,
12
+ Options extends WorkerOptions
13
+ > implements WorkerConsumer<EventEntity>
14
+ {
15
+ constructor(
16
+ protected readonly queueName: string,
17
+ protected readonly cache: TtlCache,
18
+ protected readonly options: Options,
19
+ protected readonly processEvents: WorkerProcessFunction<EventEntity>,
20
+ protected readonly failureHandler: WorkerFailureHandler<EventEntity>
21
+ ) {}
22
+
23
+ private async retrieveEvents(): Promise<EventEntity[]> {
24
+ const events = (
25
+ await this.cache.dequeueBatchRecords<EventEntity>(
26
+ this.queueName,
27
+ this.options.pageSize
28
+ )
29
+ ).filter((event) => event != null);
30
+ return events;
31
+ }
32
+
33
+ private async updateEvents(events: EventEntity[]): Promise<void> {
34
+ await this.cache.enqueueBatchRecords(
35
+ this.queueName,
36
+ events
37
+ .filter((event) => event != null && event.retryCount <= 3)
38
+ .map((event) => ({
39
+ ...event,
40
+ retryCount: event.retryCount + 1
41
+ }))
42
+ );
43
+ }
44
+
45
+ async peekEvents(): Promise<EventEntity[]> {
46
+ const events = await this.cache.peekQueueRecords<EventEntity>(
47
+ this.queueName,
48
+ this.options.pageSize
49
+ );
50
+ return events;
51
+ }
52
+
53
+ async start(): Promise<void> {
54
+ setInterval(async () => {
55
+ const events = await this.retrieveEvents();
56
+ const failedEvents = await this.processEvents(events);
57
+ await this.failureHandler(failedEvents);
58
+ await this.updateEvents(failedEvents.map((event) => event.value));
59
+ }, this.options.interval);
60
+ }
61
+ }
@@ -0,0 +1 @@
1
+ export * from './redisWorker.schema';
@@ -0,0 +1,7 @@
1
+ import { number } from '@{{app_name}}/core';
2
+
3
+ export const RedisWorkerOptionsSchema = {
4
+ pageSize: number,
5
+ retries: number,
6
+ interval: number
7
+ };
@@ -0,0 +1 @@
1
+ export * from './redisWorker.producer';
@@ -0,0 +1,24 @@
1
+ import { TtlCache } from '@forklaunch/core/cache';
2
+ import { WorkerProducer } from '@forklaunch/interfaces-worker/interfaces';
3
+ import { WorkerEventEntity } from '@forklaunch/interfaces-worker/types';
4
+ import { WorkerOptions } from '../types/redisWorker.types';
5
+ export class RedisWorkerProducer<
6
+ EventEntity extends WorkerEventEntity,
7
+ Options extends WorkerOptions
8
+ > implements WorkerProducer<EventEntity>
9
+ {
10
+ constructor(
11
+ private readonly queueName: string,
12
+ private readonly cache: TtlCache,
13
+ private readonly options: Options
14
+ ) {}
15
+
16
+ async enqueueJob(event: EventEntity): Promise<void> {
17
+ await this.cache.enqueueRecord(this.queueName, event);
18
+ }
19
+
20
+ async enqueueBatchJobs(events: EventEntity[]): Promise<void> {
21
+ console.log('Enqueuing batch jobs', events);
22
+ await this.cache.enqueueBatchRecords(this.queueName, events);
23
+ }
24
+ }
@@ -0,0 +1 @@
1
+ export * from './redisWorker.types';
@@ -0,0 +1,5 @@
1
+ export type WorkerOptions = {
2
+ pageSize: number;
3
+ retries: number;
4
+ interval: number;
5
+ };
@@ -0,0 +1,4 @@
1
+ import type { JestConfigWithTsJest } from 'ts-jest';
2
+ declare const jestConfig: JestConfigWithTsJest;
3
+ export default jestConfig;
4
+ //# sourceMappingURL=jest.config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jest.config.d.ts","sourceRoot":"","sources":["../jest.config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpD,QAAA,MAAM,UAAU,EAAE,oBAiBjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -0,0 +1,19 @@
1
+ const jestConfig = {
2
+ preset: 'ts-jest/presets/default-esm', // or other ESM presets
3
+ moduleNameMapper: {
4
+ '^(\\.{1,2}/.*)\\.js$': '$1'
5
+ },
6
+ transform: {
7
+ // '^.+\\.[tj]sx?$' to process ts,js,tsx,jsx with `ts-jest`
8
+ // '^.+\\.m?[tj]sx?$' to process ts,js,tsx,jsx,mts,mjs,mtsx,mjsx with `ts-jest`
9
+ '^.+\\.[tj]sx?$': [
10
+ 'ts-jest',
11
+ {
12
+ useESM: true
13
+ }
14
+ ],
15
+ '^.+\\.js$': 'babel-jest'
16
+ },
17
+ testPathIgnorePatterns: ['.*dist/', '.*node_modules/']
18
+ };
19
+ export default jestConfig;
@@ -0,0 +1,2 @@
1
+ export * from './redisWorker.producer';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../producers/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1 @@
1
+ export * from './redisWorker.producer';
@@ -0,0 +1,13 @@
1
+ import { TtlCache } from '@forklaunch/core/cache';
2
+ import { WorkerProducer } from '@forklaunch/interfaces-worker/interfaces';
3
+ import { WorkerEventEntity } from '@forklaunch/interfaces-worker/types';
4
+ import { WorkerOptions } from '../types/redisWorker.types';
5
+ export declare class RedisWorkerProducer<EventEntity extends WorkerEventEntity, Options extends WorkerOptions> implements WorkerProducer<EventEntity> {
6
+ private readonly queueName;
7
+ private readonly cache;
8
+ private readonly options;
9
+ constructor(queueName: string, cache: TtlCache, options: Options);
10
+ enqueueJob(event: EventEntity): Promise<void>;
11
+ enqueueBatchJobs(events: EventEntity[]): Promise<void>;
12
+ }
13
+ //# sourceMappingURL=redisWorker.producer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redisWorker.producer.d.ts","sourceRoot":"","sources":["../../producers/redisWorker.producer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,qBAAa,mBAAmB,CAC9B,WAAW,SAAS,iBAAiB,EACrC,OAAO,SAAS,aAAa,CAC7B,YAAW,cAAc,CAAC,WAAW,CAAC;IAGpC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAFP,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE,OAAO;IAG7B,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAI7D"}
@@ -0,0 +1,17 @@
1
+ export class RedisWorkerProducer {
2
+ queueName;
3
+ cache;
4
+ options;
5
+ constructor(queueName, cache, options) {
6
+ this.queueName = queueName;
7
+ this.cache = cache;
8
+ this.options = options;
9
+ }
10
+ async enqueueJob(event) {
11
+ await this.cache.enqueueRecord(this.queueName, event);
12
+ }
13
+ async enqueueBatchJobs(events) {
14
+ console.log('Enqueuing batch jobs', events);
15
+ await this.cache.enqueueBatchRecords(this.queueName, events);
16
+ }
17
+ }
@@ -0,0 +1,2 @@
1
+ export * from './redisWorker.schema';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../schemas/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1 @@
1
+ export * from './redisWorker.schema';
@@ -0,0 +1,12 @@
1
+ export declare const RedisWorkerSchemas: <SchemaValidator extends import("@forklaunch/validator").AnySchemaValidator>(options: Record<string, unknown> & {
2
+ validator: SchemaValidator;
3
+ }) => import("@forklaunch/core/mappers").SchemasByValidator<SchemaValidator, (options: Record<string, unknown>) => {
4
+ pageSize: import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TString, import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TNull, import("@sinclair/typebox").TDate, import("@sinclair/typebox").TBigInt]>, number>;
5
+ retries: import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TString, import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TNull, import("@sinclair/typebox").TDate, import("@sinclair/typebox").TBigInt]>, number>;
6
+ interval: import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TString, import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TNull, import("@sinclair/typebox").TDate, import("@sinclair/typebox").TBigInt]>, number>;
7
+ }, (options: Record<string, unknown>) => {
8
+ pageSize: import("zod").ZodNumber;
9
+ retries: import("zod").ZodNumber;
10
+ interval: import("zod").ZodNumber;
11
+ }>;
12
+ //# sourceMappingURL=redisWorker.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redisWorker.schema.d.ts","sourceRoot":"","sources":["../../schemas/redisWorker.schema.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,kBAAkB;;;;;;;;;;EAG9B,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { serviceSchemaResolver } from '@forklaunch/core/mappers';
2
+ import { RedisWorkerOptionsSchema as TypeBoxSchemas } from './typebox/redisWorker.schema';
3
+ import { RedisWorkerOptionsSchema as ZodSchemas } from './zod/redisWorker.schema';
4
+ export const RedisWorkerSchemas = serviceSchemaResolver(() => TypeBoxSchemas, () => ZodSchemas);
@@ -0,0 +1,6 @@
1
+ export declare const RedisWorkerOptionsSchema: {
2
+ pageSize: import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TString, import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TNull, import("@sinclair/typebox").TDate, import("@sinclair/typebox").TBigInt]>, number>;
3
+ retries: import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TString, import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TNull, import("@sinclair/typebox").TDate, import("@sinclair/typebox").TBigInt]>, number>;
4
+ interval: import("@sinclair/typebox").TTransform<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TString, import("@sinclair/typebox").TBoolean, import("@sinclair/typebox").TNull, import("@sinclair/typebox").TDate, import("@sinclair/typebox").TBigInt]>, number>;
5
+ };
6
+ //# sourceMappingURL=redisWorker.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redisWorker.schema.d.ts","sourceRoot":"","sources":["../../../schemas/typebox/redisWorker.schema.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,wBAAwB;;;;CAIpC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { number } from '@forklaunch/validator/typebox';
2
+ export const RedisWorkerOptionsSchema = {
3
+ pageSize: number,
4
+ retries: number,
5
+ interval: number
6
+ };
@@ -0,0 +1,6 @@
1
+ export declare const RedisWorkerOptionsSchema: {
2
+ pageSize: import("zod").ZodNumber;
3
+ retries: import("zod").ZodNumber;
4
+ interval: import("zod").ZodNumber;
5
+ };
6
+ //# sourceMappingURL=redisWorker.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redisWorker.schema.d.ts","sourceRoot":"","sources":["../../../schemas/zod/redisWorker.schema.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,wBAAwB;;;;CAIpC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { number } from '@forklaunch/validator/zod';
2
+ export const RedisWorkerOptionsSchema = {
3
+ pageSize: number,
4
+ retries: number,
5
+ interval: number
6
+ };