소스 검색

Server: Thread safety: queue & await initial server data syncs as well

Christian Kahlau 3 년 전
부모
커밋
4006199fdd
1개의 변경된 파일4개의 추가작업 그리고 7개의 파일을 삭제
  1. 4 7
      server/src/ctrl/server-connector.class.ts

+ 4 - 7
server/src/ctrl/server-connector.class.ts

@@ -17,7 +17,7 @@ export class ServerConnector {
         await this.db.open();
         const serverList = await this.db.getAllServerConfigs();
 
-        serverList.forEach(async server => {
+        for (const server of serverList) {
           let interval = Number(server.config['syncInterval']);
           if (Number.isNaN(interval)) interval = defaults.serverSync.interval;
 
@@ -25,12 +25,9 @@ export class ServerConnector {
           const id = Timer.instance.subscribe(interval, async () => await this.timerTick(server));
           this.subscriptions.push({ id, interval, server });
 
-          process.nextTick(async () => {
-            Logger.info('[INFO] Initial Sync for', server.title, '...');
-            await this.timerTick(server);
-            Logger.info('[SUCCESS] Initial Sync for', server.title, 'succeeded.');
-          });
-        });
+          Logger.info('[INFO] Initial Sync for', server.title, '...');
+          await this.timerTick(server);
+        }
       } catch (err) {
         Logger.error('[FATAL] Initializing ServerConnector failed:', err);
         Logger.error('[EXITING]');