Ich habe einen einfachen "Bot" zum Parsen eines RSS-Feeds in einige Trellokarten erstellt.PM2 Start erstellt seltsame Dateien
Ich verwende PM2 zum Starten und die bot.js Aufrechterhaltung
Aus irgendeinem seltsamen Grund der cliframework einige seltsame Dateien erstellt.
einfach die Situation so klar wie möglich zu machen:
pm2 list
kehrt
┌──────────┬────┬──────┬───────┬────────┬─────────┬────────┬─────┬───────────┬──────────┐
│ App name │ id │ mode │ pid │ status │ restart │ uptime │ cpu │ mem │ watching │
├──────────┼────┼──────┼───────┼────────┼─────────┼────────┼─────┼───────────┼──────────┤
│ bot │ 0 │ fork │ 25084 │ online │ 0 │ 3m │ 0% │ 67.7 MB │ disabled │
└──────────┴────┴──────┴───────┴────────┴─────────┴────────┴─────┴───────────┴──────────┘
manchmal, wenn ich die
ls
der Befehl
kehrt bin mitbot.js node_modules
und irgendwann gibt es mit 1+ zusätzlichen leeren Dateien wie diese
b0d3e000-bca5-11e6-b57b-fff3b35ba082 b0d3e001-bca5-11e6-b57b-fff3b35ba082
bot.js node_modules
der Dateien werden einige secons danach immer gelöscht und mit verschiedenen Namen danach
hier einige Sekunden erstellt zu werden, ist das Hauptproblem:
Dieser Bot lief für 3 Wochen, während ich abwesend war und beim Neustartzähler gab es einen 3127 (warum so viel ... IDK), aber für jeden Neustart gab es eine solche Datei übrig. Ich musste 3127 Dateien löschen .. nur weil PM2 einige seltsame Dateien erstellt ..
ist dort noch ein ähnliches Problem aufgelistet .. oder kennen Sie eine mögliche Behebung oder Erklärung?
edit: Ich habe erkannt, dass diese Dateien nicht neu gestartet werden .. erstellt, weil sie es ohne Gegen Neustart jetzt sind> 0
nur um sicherzugehen, wird der Code aufgeschlüsselt:
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();
}
}
});
}
Kann möglich sein, während PM2 konfigurieren temporäre Datei festgelegt, wenn es ein Problem oder einen Fehler gibt ?? –
Ich weiß nicht, wo diese Konfiguration sein sollte ... Die Dokumentation sagt nichts über die Dateien – Machigatta
Könnten Sie den Befehl hinzufügen, den Sie verwenden, um bot.js mit PM2 zu starten? – leroydev