fix ui: speed up mob processing, potentially fix worker restart on unauth
This commit is contained in:
parent
2ca84c397f
commit
ef28bfc8f9
6 changed files with 38 additions and 20 deletions
|
|
@ -199,7 +199,9 @@ export default class MessageLoader {
|
|||
* if EFS fails, then session doesn't exist
|
||||
* */
|
||||
async loadFiles() {
|
||||
this.messageManager.startLoading();
|
||||
if (!this.preloaded) {
|
||||
this.messageManager.startLoading();
|
||||
}
|
||||
|
||||
try {
|
||||
await this.loadMobs();
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
# 12.0.11
|
||||
|
||||
- better restart on unauth (new token assign for long sessions)
|
||||
|
||||
# 12.0.10
|
||||
|
||||
- improved logs for node binding errors, full nodelist clear before start, getSessionInfo method
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "@openreplay/tracker",
|
||||
"description": "The OpenReplay tracker main package",
|
||||
"version": "12.0.10-beta.0",
|
||||
"version": "12.0.10-beta.1",
|
||||
"keywords": [
|
||||
"logging",
|
||||
"replay"
|
||||
|
|
|
|||
|
|
@ -41,7 +41,8 @@ type QEmpty = {
|
|||
}
|
||||
|
||||
export type FromWorkerData =
|
||||
| 'restart'
|
||||
| 'a_stop'
|
||||
| 'a_start'
|
||||
| Failure
|
||||
| 'not_init'
|
||||
| { type: 'compress'; batch: Uint8Array }
|
||||
|
|
|
|||
|
|
@ -262,8 +262,10 @@ export default class App {
|
|||
this._debug('webworker_error', e)
|
||||
}
|
||||
this.worker.onmessage = ({ data }: MessageEvent<FromWorkerData>) => {
|
||||
if (data === 'restart') {
|
||||
// handling 401 auth restart (new token assignment)
|
||||
if (data === 'a_stop') {
|
||||
this.stop(false)
|
||||
} else if (data === 'a_start') {
|
||||
void this.start({}, true)
|
||||
} else if (data === 'not_init') {
|
||||
this.debug.warn('OR WebWorker: writer not initialised. Restarting tracker')
|
||||
|
|
|
|||
|
|
@ -49,28 +49,34 @@ function resetSender(): void {
|
|||
}
|
||||
}
|
||||
|
||||
function reset(): void {
|
||||
workerStatus = WorkerStatus.Stopping
|
||||
if (sendIntervalID !== null) {
|
||||
clearInterval(sendIntervalID)
|
||||
sendIntervalID = null
|
||||
}
|
||||
resetWriter()
|
||||
resetSender()
|
||||
setTimeout(() => {
|
||||
workerStatus = WorkerStatus.NotActive
|
||||
}, 100)
|
||||
function reset(): Promise<any> {
|
||||
return new Promise((res) => {
|
||||
workerStatus = WorkerStatus.Stopping
|
||||
if (sendIntervalID !== null) {
|
||||
clearInterval(sendIntervalID)
|
||||
sendIntervalID = null
|
||||
}
|
||||
resetWriter()
|
||||
resetSender()
|
||||
setTimeout(() => {
|
||||
workerStatus = WorkerStatus.NotActive
|
||||
res(null)
|
||||
}, 100)
|
||||
})
|
||||
}
|
||||
|
||||
function initiateRestart(): void {
|
||||
if (workerStatus === WorkerStatus.Stopped) return
|
||||
postMessage('restart')
|
||||
reset()
|
||||
postMessage('a_stop')
|
||||
// eslint-disable-next-line
|
||||
reset().then(() => {
|
||||
postMessage('a_start')
|
||||
})
|
||||
}
|
||||
|
||||
function initiateFailure(reason: string): void {
|
||||
postMessage({ type: 'failure', reason })
|
||||
reset()
|
||||
void reset()
|
||||
}
|
||||
|
||||
let sendIntervalID: ReturnType<typeof setInterval> | null = null
|
||||
|
|
@ -84,8 +90,11 @@ self.onmessage = ({ data }: { data: ToWorkerData }): any => {
|
|||
}
|
||||
if (data === 'stop') {
|
||||
finalize()
|
||||
reset()
|
||||
return (workerStatus = WorkerStatus.Stopped)
|
||||
// eslint-disable-next-line
|
||||
reset().then(() => {
|
||||
workerStatus = WorkerStatus.Stopped
|
||||
})
|
||||
return
|
||||
}
|
||||
if (data === 'forceFlushBatch') {
|
||||
finalize()
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue