mirror of
https://github.com/wassname/talk.git
synced 2026-08-17 11:27:52 +08:00
[CORL-543] Persisted Query Fix (#2482)
* fix: addressed query loading bug * fix: refine logging
This commit is contained in:
@@ -13,12 +13,12 @@ import { HTMLErrorHandler } from "coral-server/app/middleware/error";
|
||||
import { notFoundMiddleware } from "coral-server/app/middleware/notFound";
|
||||
import { createPassport } from "coral-server/app/middleware/passport";
|
||||
import { Config } from "coral-server/config";
|
||||
import { PersistedQueryCache } from "coral-server/models/queries";
|
||||
import { MailerQueue } from "coral-server/queue/tasks/mailer";
|
||||
import { ScraperQueue } from "coral-server/queue/tasks/scraper";
|
||||
import { I18n } from "coral-server/services/i18n";
|
||||
import { JWTSigningConfig } from "coral-server/services/jwt";
|
||||
import { Metrics } from "coral-server/services/metrics";
|
||||
import { PersistedQueryCache } from "coral-server/services/queries";
|
||||
import { AugmentedRedis } from "coral-server/services/redis";
|
||||
import TenantCache from "coral-server/services/tenant/cache";
|
||||
|
||||
|
||||
@@ -4,11 +4,21 @@ import path from "path";
|
||||
|
||||
import { version } from "coral-common/version";
|
||||
import { getOperationMetadata } from "coral-server/graph/common/extensions/helpers";
|
||||
import logger from "coral-server/logger";
|
||||
import { PersistedQuery } from "coral-server/models/queries";
|
||||
|
||||
export function loadPersistedQueries() {
|
||||
// Load the files in the persisted queries folder.
|
||||
export function loadPersistedQueries(): PersistedQuery[] {
|
||||
// Check to see if we have a persisted queries folder.
|
||||
const dir = path.join(__dirname, "__generated__");
|
||||
if (!fs.pathExistsSync(dir)) {
|
||||
logger.warn(
|
||||
{ dir },
|
||||
"persisted queries not loaded, dir not found; did you run `npm run generate-persist`?"
|
||||
);
|
||||
return [];
|
||||
}
|
||||
|
||||
// Load the files in the persisted queries folder.
|
||||
const files = fs.readdirSync(dir);
|
||||
|
||||
// Load each of the persisted queries.
|
||||
@@ -52,5 +62,7 @@ export function loadPersistedQueries() {
|
||||
}
|
||||
}
|
||||
|
||||
logger.info({ queries: queries.length }, "loaded persisted queries");
|
||||
|
||||
return queries;
|
||||
}
|
||||
|
||||
@@ -19,13 +19,13 @@ import { createPubSubClient } from "coral-server/graph/common/subscriptions/pubs
|
||||
import getTenantSchema from "coral-server/graph/tenant/schema";
|
||||
import { createSubscriptionServer } from "coral-server/graph/tenant/subscriptions/server";
|
||||
import logger from "coral-server/logger";
|
||||
import { PersistedQueryCache } from "coral-server/models/queries";
|
||||
import { createQueue, TaskQueue } from "coral-server/queue";
|
||||
import { I18n } from "coral-server/services/i18n";
|
||||
import { createJWTSigningConfig } from "coral-server/services/jwt";
|
||||
import { createMetrics } from "coral-server/services/metrics";
|
||||
import { createMongoDB } from "coral-server/services/mongodb";
|
||||
import { ensureIndexes } from "coral-server/services/mongodb/indexes";
|
||||
import { PersistedQueryCache } from "coral-server/services/queries";
|
||||
import {
|
||||
AugmentedRedis,
|
||||
createAugmentedRedisClient,
|
||||
@@ -267,14 +267,6 @@ class Server {
|
||||
// Prime the queries in the database.
|
||||
await persistedQueryCache.prime();
|
||||
|
||||
logger.info(
|
||||
{ queries: persistedQueryCache.size },
|
||||
"loaded persisted queries"
|
||||
);
|
||||
if (persistedQueryCache.size === 0) {
|
||||
logger.warn("no persisted queries loaded, did you run `npm run build`?");
|
||||
}
|
||||
|
||||
const options: AppOptions = {
|
||||
parent,
|
||||
pubsub: this.pubsub,
|
||||
|
||||
@@ -1,2 +1 @@
|
||||
export * from "./cache";
|
||||
export * from "./queries";
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
import { Db } from "mongodb";
|
||||
|
||||
import { createIndexFactory } from "../helpers/indexing";
|
||||
import {
|
||||
createCollection,
|
||||
createIndexFactory,
|
||||
} from "coral-server/models/helpers";
|
||||
|
||||
function collection(mongo: Db) {
|
||||
return mongo.collection<Readonly<PersistedQuery>>("queries");
|
||||
}
|
||||
const collection = createCollection<Readonly<PersistedQuery>>("queries");
|
||||
|
||||
export interface PersistedQuery {
|
||||
id: string;
|
||||
|
||||
@@ -4,8 +4,11 @@ import { Db } from "mongodb";
|
||||
|
||||
import { loadPersistedQueries } from "coral-server/graph/tenant/persisted";
|
||||
import logger from "coral-server/logger";
|
||||
|
||||
import { getQueries, PersistedQuery, primeQueries } from "./queries";
|
||||
import {
|
||||
getQueries,
|
||||
PersistedQuery,
|
||||
primeQueries,
|
||||
} from "coral-server/models/queries/queries";
|
||||
|
||||
interface PersistedQueryCacheOptions {
|
||||
mongo: Db;
|
||||
@@ -0,0 +1 @@
|
||||
export * from "./cache";
|
||||
Reference in New Issue
Block a user