Files
Automata/packages/cli/src/services/redis.service.ts
Michael Auerswald 3cad60e918 feat(core): Make Redis available for backend communication (#6719)
* support redis cluster

* cleanup, fix config schema

* set default prefix to bull

* initial commit

* improve logging

* improve types and refactor

* list support and refactor

* fix redis service and tests

* add comment

* add redis and cache prefix

* use injection

* lint fix

* clean schema comments

* improve naming, tests, cluster client

* merge master

* cache returns unknown instead of T

* update cache service, tests and doc

* remove console.log

* do not cache null or undefined values

* fix merge

* lint fix
2023-08-02 12:51:25 +02:00

53 lines
1.7 KiB
TypeScript

import { Service } from 'typedi';
import { RedisServicePubSubSubscriber } from './redis/RedisServicePubSubSubscriber';
import { RedisServicePubSubPublisher } from './redis/RedisServicePubSubPublisher';
import { RedisServiceListReceiver } from './redis/RedisServiceListReceiver';
import { RedisServiceListSender } from './redis/RedisServiceListSender';
import { RedisServiceStreamConsumer } from './redis/RedisServiceStreamConsumer';
import { RedisServiceStreamProducer } from './redis/RedisServiceStreamProducer';
/*
* This is a convenience service that provides access to all the Redis clients.
*/
@Service()
export class RedisService {
constructor(
private redisServicePubSubSubscriber: RedisServicePubSubSubscriber,
private redisServicePubSubPublisher: RedisServicePubSubPublisher,
private redisServiceListReceiver: RedisServiceListReceiver,
private redisServiceListSender: RedisServiceListSender,
private redisServiceStreamConsumer: RedisServiceStreamConsumer,
private redisServiceStreamProducer: RedisServiceStreamProducer,
) {}
async getPubSubSubscriber() {
await this.redisServicePubSubSubscriber.init();
return this.redisServicePubSubSubscriber;
}
async getPubSubPublisher() {
await this.redisServicePubSubPublisher.init();
return this.redisServicePubSubPublisher;
}
async getListSender() {
await this.redisServiceListSender.init();
return this.redisServiceListSender;
}
async getListReceiver() {
await this.redisServiceListReceiver.init();
return this.redisServiceListReceiver;
}
async getStreamProducer() {
await this.redisServiceStreamProducer.init();
return this.redisServiceStreamProducer;
}
async getStreamConsumer() {
await this.redisServiceStreamConsumer.init();
return this.redisServiceStreamConsumer;
}
}