我创建了一个简单的“bot”,用于解析rss-feed到一些trello卡。PM2开始创建奇怪的文件
我使用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
和某个时候有了这样的
b0d3e000-bca5-11e6-b57b-fff3b35ba082 b0d3e001-bca5-11e6-b57b-fff3b35ba082
bot.js node_modules
文件1+额外的空文件越来越删除了一些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();
}
}
});
}
可能在配置pm2时设置临时文件,如果有任何问题或错误? –
我不知道这个配置应该在哪里......纪录片没有提到这些文件 – Machigatta
你可以添加你用来启动pm2的bot.js的命令吗? – leroydev