mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-10-05 06:18:04 +03:00
server: fetch and use stored introspection during Schema Cache (re)builds
PR-URL: https://github.com/hasura/graphql-engine-mono/pull/9272 GitOrigin-RevId: 08d7767489912ca1420453f5dda0e440352a19c0
This commit is contained in:
parent
87da15a596
commit
46451cf114
@ -232,6 +232,7 @@ instance (Monad m) => CacheRM (CacheRWT m) where
|
||||
instance
|
||||
( MonadIO m,
|
||||
MonadError QErr m,
|
||||
MonadMetadataStorage m,
|
||||
ProvidesNetwork m,
|
||||
MonadResolveSource m,
|
||||
HasCacheStaticConfig m
|
||||
@ -241,12 +242,14 @@ instance
|
||||
tryBuildSchemaCacheWithOptions buildReason invalidations metadata validateNewSchemaCache = CacheRWT do
|
||||
dynamicConfig <- ask
|
||||
(RebuildableSchemaCache lastBuiltSC invalidationKeys rule, oldInvalidations) <- get
|
||||
let metadataWithVersion = MetadataWithResourceVersion metadata $ scMetadataResourceVersion lastBuiltSC
|
||||
let metadataVersion = scMetadataResourceVersion lastBuiltSC
|
||||
metadataWithVersion = MetadataWithResourceVersion metadata metadataVersion
|
||||
newInvalidationKeys = invalidateKeys invalidations invalidationKeys
|
||||
storedIntrospection <- onLeftM (fetchSourceIntrospection metadataVersion) (\_ -> pure Nothing)
|
||||
result <-
|
||||
runCacheBuildM $
|
||||
flip runReaderT buildReason $
|
||||
Inc.build rule (metadataWithVersion, dynamicConfig, newInvalidationKeys, Nothing)
|
||||
Inc.build rule (metadataWithVersion, dynamicConfig, newInvalidationKeys, storedIntrospection)
|
||||
let schemaCache = Inc.result result
|
||||
prunedInvalidationKeys = pruneInvalidationKeys schemaCache newInvalidationKeys
|
||||
!newCache = RebuildableSchemaCache schemaCache prunedInvalidationKeys (Inc.rebuildRule result)
|
||||
|
@ -77,6 +77,7 @@ instance
|
||||
( MonadIO m,
|
||||
MonadBaseControl IO m,
|
||||
MonadError QErr m,
|
||||
MonadMetadataStorage m,
|
||||
MonadResolveSource m,
|
||||
ProvidesNetwork m,
|
||||
HasCacheStaticConfig m
|
||||
|
Loading…
Reference in New Issue
Block a user