1
Aktuelle Post Anfrage:Wie schalte ich die Post-Anfrage in Node.js?
app.post('/rImage', rawBody, function (req, res) {
// ---- check here, if this process is running ? ----
var data = req.rawBody;
var escapedData = data.replace(/([<>|&^])/g, "\^$1"); // Windows CMD escaping
exec('cscript /nologo C:/PS/Automation/render.vbs C:/PS/Automation/image.jsx"'+escapedData + '"',
function (error, stdout, stderr) {
console.log('stdout: ' + escapedData);
if(error !== null) {
console.log('exec error: ' + error);
}
res.send(stdout);
//request finished
});
});
Wie könnte ich ein Warteschlangen-System implementieren diese, so dass die nächste Anfrage aus feuert, wenn der letzte fertig ist?
Danke in adnvance!
+1 für eine „Arme-Leute-Warteschlange“. Versuchen Sie für Bibliotheken [async] (https://github.com/caolan/async#queue). Sie könnten auch etwas Infrastruktur-basiertes tun, wie [RabbitMQ] (https://www.rabbitmq.com/) –
Die Async-Bibliothek sieht sehr interessant aus, wusste das vorher nicht. Aber wenn es zu einer direkten Implementierung kommen würde, was würden Sie im obigen Code verbessern? - um es ein bisschen reicher an die Reihe eines reichen Mannes zu machen ;-) –
1 Hängt davon ab, was wir machen, warum wir es in die Warteschlange stellen, ob wir es vergrößern müssen, usw. :) Schau es dir nochmal an scheint, dass wir ein VBScript ausführen? In diesem Fall glaube ich nicht, dass ich etwas ändern würde, da es so aussieht, als wollten wir nur sicherstellen, dass das Skript nur einzeln ausgeführt wird (ich nehme an, weil das VBScript bricht, wenn es gleichzeitig ausgeführt wird). Wenn wir Flexibilität bei der Anzahl der gleichzeitigen Läufe wünschen, könnte ich nach async.queue greifen. Wenn es sich um eine langsame Verarbeitung handelt, könnten wir auf einen anderen Server wechseln. Ich könnte RabbitMQ verwenden. –