Explorar o código

重写init-art-open,因线上服务器内存不足

guoziyun hai 1 ano
pai
achega
062c047855
Modificáronse 1 ficheiros con 11 adicións e 5 borrados
  1. 11 5
      tools/init-art-open.js

+ 11 - 5
tools/init-art-open.js

@@ -2,18 +2,24 @@ const models = require('../models');
 
 const firstOpenCount = 2000; // 初始开放2000个内容
 
+
 async function init() {
   let done = 0;
   let duration = 0;
   let hour, minute, second;
   let start = Date.now();
-
-  let docs = await models.Art.find().sort({ lastMod: 1 });
-
-  let total = docs.length;
+  let total = await models.Art.countDocuments();
   console.log('total:', total);
 
-  for (let doc of docs) {
+  models.Art
+    .find()
+    .sort({ lastMod: 1 })
+    .cursor()
+    .eachAsync(job)
+    .catch(err => console.error(err.message))
+    .then(() => require('process').exit(0))
+
+  async function job(doc) {
     if (done >= firstOpenCount) doc.open = false;
     else doc.open = true;
     await doc.save();