mirror of
https://github.com/hcengineering/platform.git
synced 2026-09-07 10:17:42 +02:00
UBERF-6374: Improve server logging and improve startup performance (#5210)
This commit is contained in:
@@ -128,7 +128,7 @@ class Connection implements ClientConnection {
|
||||
}
|
||||
}
|
||||
|
||||
delay = 1
|
||||
delay = 0
|
||||
pending: Promise<ClientSocket> | undefined
|
||||
|
||||
private async waitOpenConnection (): Promise<ClientSocket> {
|
||||
@@ -140,7 +140,7 @@ class Connection implements ClientConnection {
|
||||
}
|
||||
this.pending = this.openConnection()
|
||||
await this.pending
|
||||
this.delay = 5
|
||||
this.delay = 0
|
||||
return await this.pending
|
||||
} catch (err: any) {
|
||||
this.pending = undefined
|
||||
@@ -154,7 +154,7 @@ class Connection implements ClientConnection {
|
||||
setTimeout(() => {
|
||||
console.log(`delay ${this.delay} second`)
|
||||
resolve(null)
|
||||
if (this.delay !== 15) {
|
||||
if (this.delay < 5) {
|
||||
this.delay++
|
||||
}
|
||||
}, this.delay * SECOND)
|
||||
|
||||
@@ -18,6 +18,7 @@ import core, {
|
||||
AccountClient,
|
||||
ClientConnectEvent,
|
||||
LoadModelResponse,
|
||||
MeasureContext,
|
||||
Tx,
|
||||
TxHandler,
|
||||
TxPersistenceStore,
|
||||
@@ -37,6 +38,28 @@ import { connect } from './connection'
|
||||
|
||||
export { connect }
|
||||
|
||||
let dbRequest: IDBOpenDBRequest | undefined
|
||||
let dbPromise: Promise<IDBDatabase | undefined> = Promise.resolve(undefined)
|
||||
|
||||
if (typeof localStorage !== 'undefined') {
|
||||
const st = Date.now()
|
||||
dbPromise = new Promise<IDBDatabase>((resolve) => {
|
||||
dbRequest = indexedDB.open('model.db.persistence', 2)
|
||||
|
||||
dbRequest.onupgradeneeded = function () {
|
||||
const db = (dbRequest as IDBOpenDBRequest).result
|
||||
if (!db.objectStoreNames.contains('model')) {
|
||||
db.createObjectStore('model', { keyPath: 'id' })
|
||||
}
|
||||
}
|
||||
dbRequest.onsuccess = function () {
|
||||
const db = (dbRequest as IDBOpenDBRequest).result
|
||||
console.log('init DB complete', Date.now() - st)
|
||||
resolve(db)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
|
||||
export default async () => {
|
||||
return {
|
||||
@@ -46,7 +69,8 @@ export default async () => {
|
||||
endpoint: string,
|
||||
onUpgrade?: () => void,
|
||||
onUnauthorized?: () => void,
|
||||
onConnect?: (event: ClientConnectEvent) => void
|
||||
onConnect?: (event: ClientConnectEvent) => void,
|
||||
ctx?: MeasureContext
|
||||
): Promise<AccountClient> => {
|
||||
const filterModel = getMetadata(clientPlugin.metadata.FilterModel) ?? false
|
||||
|
||||
@@ -75,7 +99,8 @@ export default async () => {
|
||||
return connect(url.href, upgradeHandler, onUpgrade, onUnauthorized, onConnect)
|
||||
},
|
||||
filterModel ? [...getPlugins(), ...(getMetadata(clientPlugin.metadata.ExtraPlugins) ?? [])] : undefined,
|
||||
createModelPersistence(getWSFromToken(token))
|
||||
createModelPersistence(getWSFromToken(token)),
|
||||
ctx
|
||||
)
|
||||
// Check if we had dev hook for client.
|
||||
client = hookClient(client)
|
||||
@@ -90,25 +115,6 @@ function createModelPersistence (workspace: string): TxPersistenceStore | undefi
|
||||
return overrideStore
|
||||
}
|
||||
|
||||
let dbRequest: IDBOpenDBRequest | undefined
|
||||
let dbPromise: Promise<IDBDatabase | undefined> = Promise.resolve(undefined)
|
||||
|
||||
if (typeof localStorage !== 'undefined') {
|
||||
dbPromise = new Promise<IDBDatabase>((resolve) => {
|
||||
dbRequest = indexedDB.open('model.db.persistence', 2)
|
||||
|
||||
dbRequest.onupgradeneeded = function () {
|
||||
const db = (dbRequest as IDBOpenDBRequest).result
|
||||
if (!db.objectStoreNames.contains('model')) {
|
||||
db.createObjectStore('model', { keyPath: 'id' })
|
||||
}
|
||||
}
|
||||
dbRequest.onsuccess = function () {
|
||||
const db = (dbRequest as IDBOpenDBRequest).result
|
||||
resolve(db)
|
||||
}
|
||||
})
|
||||
}
|
||||
return {
|
||||
load: async () => {
|
||||
const db = await dbPromise
|
||||
|
||||
Reference in New Issue
Block a user