Просмотр исходного кода

ensure to emit message to client when rebuilding has failed

Yuki Takei 6 лет назад
Родитель
Сommit
09682a1bde

+ 3 - 0
src/server/routes/admin.js

@@ -95,6 +95,9 @@ module.exports = function(crowi, app) {
   searchEvent.on('finishAddPage', (total, current, skip) => {
     crowi.getIo().sockets.emit('admin:finishAddPage', { total, current, skip });
   });
+  searchEvent.on('rebuildingFailed', (error) => {
+    crowi.getIo().sockets.emit('admin:rebuildingFailed', { error: error.message });
+  });
 
   actions.index = function(req, res) {
     return res.render('admin/index');

+ 6 - 2
src/server/service/search-delegator/elasticsearch.js

@@ -184,9 +184,13 @@ class ElasticsearchDelegator {
       await this.createIndex(indexName);
       await this.addAllPages();
     }
-    catch (err) {
+    catch (error) {
       logger.warn('An error occured while \'rebuildIndex\', normalize indices anyway.');
-      throw err;
+
+      const { searchEvent } = this;
+      searchEvent.emit('rebuildingFailed', error);
+
+      throw error;
     }
     finally {
       await this.normalizeIndices();