import { LockProviderFactory } from "@daiso-tech/core/lock";
import { MemoryLockAdapter } from "@daiso-tech/core/lock/memory-lock-adapter";
import { RedisLockAdapter } from "@daiso-tech/core/lock/redis-lock-adapter";
import { Serde } from "@daiso-tech/core/serde";
import { SuperJsonSerdeAdapter } from "@daiso-tech/core/serde/super-json-serde-adapter";
import Redis from "ioredis"
const serde = new Serde(new SuperJsonSerdeAdapter());
const lockProviderFactory = new LockProviderFactory({
serde,
adapters: {
memory: new MemoryLockAdapter(),
redis: new RedisLockAdapter(new Redis("YOUR_REDIS_CONNECTION")),
},
defaultAdapter: "memory",
});
import { LockProviderFactory } from "@daiso-tech/core/lock";
import { MemoryLockAdapter } from "@daiso-tech/core/lock/memory-lock-adapter";
import { RedisLockAdapter } from "@daiso-tech/core/lock/redis-lock-adapter";
import { Serde } from "@daiso-tech/core/serde";
import { SuperJsonSerdeAdapter } from "@daiso-tech/core/serde/super-json-serde-adapter";
import { TimeSpan } from "@daiso-tech/core/time-span" from "@daiso-tech/core/time-span";
import Redis from "ioredis";
const serde = new Serde(new SuperJsonSerdeAdapter());
const lockProviderFactory = new LockProviderFactory({
serde,
adapters: {
memory: new MemoryLockAdapter(),
redis: new RedisLockAdapter(new Redis("YOUR_REDIS_CONNECTION")),
},
defaultAdapter: "memory",
});
// Will acquire key using the default adapter which is MemoryLockAdapter
await lockProviderFactory
.use()
.create("a")
.acquire();
// Will acquire key using the redis adapter which is RedisLockAdapter
await lockProviderFactory
.use("redis")
.create("a")
.acquire();
The
LockProviderFactoryclass is immutable.IMPORT_PATH:
"@daiso-tech/core/lock"