fix: CacheAdapter does not connect when using a CacheAdapter with a JSON config (#8633)

This commit is contained in:
Daniel
2024-03-16 03:46:06 +11:00
committed by GitHub
parent 2065897dc6
commit 720d24e185
3 changed files with 21 additions and 4 deletions

View File

@@ -167,4 +167,18 @@ describe_only(() => {
.then(() => expect(getQueueCount(cache)).toEqual(0))
.then(done);
});
it('should start and connect cache adapter', async () => {
const server = await reconfigureServer({
cacheAdapter: {
module: `${__dirname.replace('/spec', '')}/lib/Adapters/Cache/RedisCacheAdapter`,
options: {
url: 'redis://127.0.0.1:6379/1',
},
},
});
const symbol = Object.getOwnPropertySymbols(server.config.cacheController);
const client = server.config.cacheController[symbol[0]].client;
expect(client.isOpen).toBeTrue();
});
});

View File

@@ -94,10 +94,10 @@ class ParseServer {
const {
databaseController,
hooksController,
cacheController,
cloud,
security,
schema,
cacheAdapter,
liveQueryController,
} = this.config;
try {
@@ -112,8 +112,11 @@ class ParseServer {
if (schema) {
startupPromises.push(new DefinedSchemas(schema, this.config).execute());
}
if (cacheAdapter?.connect && typeof cacheAdapter.connect === 'function') {
startupPromises.push(cacheAdapter.connect());
if (
cacheController.adapter?.connect &&
typeof cacheController.adapter.connect === 'function'
) {
startupPromises.push(cacheController.adapter.connect());
}
startupPromises.push(liveQueryController.connect());
await Promise.all(startupPromises);

View File

@@ -13,7 +13,7 @@ export function destroyAllDataPermanently(fast) {
Object.keys(AppCache.cache).map(appId => {
const app = AppCache.get(appId);
const deletePromises = [];
if (app.cacheAdapter) {
if (app.cacheAdapter && app.cacheAdapter.clear) {
deletePromises.push(app.cacheAdapter.clear());
}
if (app.databaseController) {