import { LockProviderFactory } from "@daiso-tech/core/lock/implementations/derivables";
import { MemoryLockAdapter, RedisLockAdapter } from "@daiso-tech/core/lock/implementations/adapters";
import { EventBus } from "@daiso-tech/core/event-bus/implementations/derivables";
import { MemoryEventBusAdapter } from "@daiso-tech/core/event-bus/implementations/adapters";
import { Serde } from "@daiso-tech/core/serde/implementations/derivables";
import { SuperJsonSerdeAdapter } from "@daiso-tech/core/serde/implementations/adapters";
import Redis from "ioredis"
const eventBus = new EventBus({
adapter: new MemoryEventBusAdapter({ rootGroup: "@global" })
});
const serde = new Serde(new SuperJsonSerdeAdapter());
const lockProviderFactory = new LockProviderFactory({
serde,
adapters: {
memory: new MemoryLockAdapter({
rootGroup: "@global"
}),
redis: new RedisLockAdapter({
client: new Redis("YOUR_REDIS_CONNECTION"),
rootGroup: "@global"
}),
},
defaultAdapter: "memory",
eventBus,
});
import { LockProviderFactory } from "@daiso-tech/core/lock/implementations/derivables";
import { MemoryLockAdapter, RedisLockAdapter } from "@daiso-tech/core/lock/implementations/adapters";
import { EventBus } from "@daiso-tech/core/event-bus/implementations/derivables";
import { MemoryEventBusAdapter } from "@daiso-tech/core/event-bus/implementations/adapters";
import { Serde } from "@daiso-tech/core/serde/implementations/derivables";
import { SuperJsonSerdeAdapter } from "@daiso-tech/core/serde/implementations/adapters";
import Redis from "ioredis"
const eventBus = new EventBus({
adapter: new MemoryEventBusAdapter({ rootGroup: "@global" })
});
const serde = new Serde(new SuperJsonSerdeAdapter());
const lockProviderFactory = new LockProviderFactory({
serde,
adapters: {
memory: new MemoryLockAdapter({
rootGroup: "@global"
}),
redis: new RedisLockAdapter({
client: new Redis("YOUR_REDIS_CONNECTION"),
rootGroup: "@global"
}),
},
defaultAdapter: "memory",
eventBus,
});
// Will create and acquire the lock with default adapter which is MemoryEventBusAdapter
await lockProviderFactory.use().create("a").acquire();
// Will create and acquire the lock with redis adapter which is RedisLockAdapter
await lockProviderFactory.use("redis").create("a").acquire();
IMPORT_PATH:
"@daiso-tech/core/lock/implementations/derivables"