Explorar o código

added worker infinite loop try catch

Pablo Barrera Yaksic hai 1 semana
pai
achega
1b6eebdcb6
Modificáronse 1 ficheiros con 22 adicións e 18 borrados
  1. 22 18
      src/agents/remindme/worker.ts

+ 22 - 18
src/agents/remindme/worker.ts

@@ -34,28 +34,32 @@ export default class Worker {
     const index = 0;
 
     while (true) {
-      const time = Date.now();
-      const result = await this._redisClient.zRangeByScore(key, index, time);
+      try {
+        const time = Date.now();
+        const result = await this._redisClient.zRangeByScore(key, index, time);
 
-      if (result?.length == 0) {
-        await this.sleep(1000);
-        continue;
-      }
+        if (result?.length == 0) {
+          await this.sleep(1000);
+          continue;
+        }
 
-      if (config.LOG_LEVEL === LogLevels.DEBUG) {
-        console.log(`Reminders fetch ${result}`);
-      }
+        if (config.LOG_LEVEL === LogLevels.DEBUG) {
+          console.log(`Reminders fetch ${result}`);
+        }
 
-      const item = result[0];
-      const removed = this._redisClient.zRem(key, item);
-      if (!removed) {
-        continue;
-      }
-
-      const data = JSON.parse(item);
-      const status = `@${data.account} \nSe cumplió tu recordatorio ${Emojis.ALARM_CLOCK} \n${data.text}`;
-      await this.reply(data.statusId, data.account, data.visibility, status);
+        const item = result[0];
+        const removed = this._redisClient.zRem(key, item);
+        if (!removed) {
+          continue;
+        }
 
+        const data = JSON.parse(item);
+        const status = `@${data.account} \nSe cumplió tu recordatorio ${Emojis.ALARM_CLOCK} \n${data.text}`;
+        await this.reply(data.statusId, data.account, data.visibility, status);
+      } catch (error) {
+        console.error(error);
+        await this.sleep(1000);
+      }
     }
   }
 }