PM2开始创建奇怪的文件

时间:2016-12-07 18:01:49

标签: javascript node.js pm2

我创建了一个简单的“bot”,用于将rss-feed解析为一些trello-cards。

我正在使用pm2来启动和维护bot.js

由于一些奇怪的原因,cliframework创建了一些奇怪的文件。

尽量让情况尽可能清楚:

pm2 list

返回

┌──────────┬────┬──────┬───────┬────────┬─────────┬────────┬─────┬───────────┬──────────┐
│ App name │ id │ mode │ pid   │ status │ restart │ uptime │ cpu │ mem       │ watching │
├──────────┼────┼──────┼───────┼────────┼─────────┼────────┼─────┼───────────┼──────────┤
│ bot      │ 0  │ fork │ 25084 │ online │ 0       │ 3m     │ 0%  │ 67.7 MB   │ disabled │
└──────────┴────┴──────┴───────┴────────┴─────────┴────────┴─────┴───────────┴──────────┘

有时如果我正在使用

ls

命令正在返回

bot.js  node_modules

有时会返回1 +以上的其他空文件

b0d3e000-bca5-11e6-b57b-fff3b35ba082  b0d3e001-bca5-11e6-b57b-fff3b35ba082  
bot.js  node_modules

文件随后被删除了一些secons,并在几秒钟之后用不同的名字创建

这是主要问题:

这个机器人运行了3个星期而我缺席并且在重启计数器上有一个3127(为什么这么多... idk)但是每次重启都有一个这样的文件...我不得不删除3127个文件..只是因为pm2正在创建一些奇怪的文件..

是否还列出了其他类似问题..或者您是否知道可能的解决方法或解释?

编辑:我刚刚意识到这些文件不是通过重新启动创建的..因为它们现在没有重启计数器> 0

只是为了确保代码细分:

var feed = require('feed-read');
var http = require('http');
var async = require('async');
var request = require('request');
var utf8 = require('utf8');
var sprintf = require('sprintf-js').sprintf;

var UNABLE_TO_CONNECT = "Unable to connect.";
var CURFEED = "";
var PUBDATE = new Array();
var FEEDS = new Array();
FEEDS["TEST"] = "http://lorem-rss.herokuapp.com/feed?unit=second&interval=4"; //test

var LISTID = new Array();
LISTID["TEST"] = "TRELLO_COLUMN";

var Trello = require("node-trello");
var t = new Trello("", "");

(function() {

  var timeout = setInterval(function() {
    async.parallel([ function(callback) {
        CURFEED = "TEST";
        feedMe(CURFEED);
        // TODO: where to call callback()?
    } ], function done(err, results) {
        console.log("Done");
        if (err) {
            throw err;
        }
    });
  }, 1000);
})();

function feedMe(feedName){

  if(FEEDS[feedName] == "" || FEEDS[feedName] == undefined){
      return;
  }
  feed(FEEDS[feedName], "ISO-8859-16", function(err, articles) {
      // console.log("------------------------- " + FEEDS[feedName]);
      if (err) {
          // html.push("<p>", UNABLE_TO_CONNECT = "</p>");
          console.log(UNABLE_TO_CONNECT);
      } else {
        var updated = false;
        var newArticle = new Array();
          articles.forEach(function(entry) {
              var merkDate = new Date(entry.published);
              var oldDate = new Date(PUBDATE[feedName]);

              if(PUBDATE[feedName] == "" || PUBDATE[feedName] == undefined){
                PUBDATE[feedName] = merkDate;
              }

              if(oldDate.getTime() < merkDate.getTime()){
                updated = true;
                newArticle.push(entry);
              }
          });

          if(newArticle.length > 0){
            for (var i = newArticle.length - 1; i >= 0; i--) {
              var entry = newArticle[i];

              console.log(sprintf("----------------------------------------------------------"));
              console.log(sprintf("> %1$s %2$s: %3$s", "New-RSS-Entry", "detected", "Checking"));
              console.log(sprintf("---%1$s %2$s: %3$s", "Entry-Name", "", entry.title));
              console.log(sprintf("----%1$s %2$s: %3$s", "Link-Name", "", entry.link));
              console.log(sprintf("--%1$s %2$s: %3$s", "Create-Date", "", entry.published));
              console.log(sprintf("-------%1$s %2$s: %3$s", "Status", "", "Creating-Trello-Card"));

              t.post("/1/lists/"+LISTID[feedName]+"/cards", {name: entry.title, desc: entry.link} , function(err, data){
                 t.put("/1/cards/"+data.id+"/pos", {value: 0}, function(err, data){
                 });
              });

              console.log(sprintf("-------%1$s %2$s: %3$s", "Status", "", "Trello-Card fully created"));
              console.log(sprintf("> %1$s %2$s: %3$s", "New-RSS-Entry", "detected", "Closing"));
            }
          }

          if(updated == true){
            PUBDATE[feedName] = new Date();
          }

      }
  });
}

1 个答案:

答案 0 :(得分:1)

好的,我调查了文件并立即获得了解决方案。 不要再使用require('feed-read')了。

似乎要创建文件来对其进行编码并在之后对其进行流式传输。

主要问题如下:

  • Rss Feed语法错误
  • 服务器不可用
  • 服务器返回db错误或其他内容

如果出现上述情况之一,则之后不会删除该文件。有些人是空的。但是我发现了一个vBulletinRss提要,它返回了&#34; DB Error&#34;。

要对此进行舍入,只需使用请求并自行解析。