簡體   English   中英

永遠運行節點腳本

[英]Run node script forever

我正在編寫一個正在等待消息的應用程序,然后將執行一些操作。 郵件正在通過Redis通道接收。 因此,我需要nodejs腳本無限運行(據我了解)

我如何在不啟動節點服務器的情況下使其運行(我覺得對於這樣一個簡單的任務啟動服務器是錯誤的)。

碼:

const redis = require("redis")
const subscriber = redis.createClient()
const http = require('http');

const hostname = '127.0.0.1';
const port = 3002;

subscriber.on("message", (channel, message) => {
  console.log(Buffer.from(message, 'base64'));
})

subscriber.subscribe('test')

// Server code, which i was using to start infinity loop
//
// const server = http.createServer((req, res) => {
//   res.statusCode = 200;
//   res.setHeader('Content-Type', 'text/plain');
//   res.end('Hello World\n');
// });
//
// server.listen(port, hostname, () => {
//   console.log(`Server running at http://${hostname}:${port}/`);
// });

Subscriber.js

 const redis = require("redis"); const subscriber = redis.createClient(); const hostname = '127.0.0.1'; const port = 6379; subscriber.on("message", function(channel, message) { console.log(message); }); subscriber.subscribe('test'); 

Publisher.js

 const redis = require("redis"); const publisher = redis.createClient(); const hostname = '127.0.0.1'; const port = 6379; publisher.publish('test',"Hello I am Here !!!"); 

這是發布者和訂閱者的示例代碼。無需運行HTTP服務器即可從redis進行訂閱。 您只想繼續運行Subscriber.js。

如果該頻道在特定的一天中處於非活動狀態,則該頻道會進入睡眠狀態,因此所有其他消息可能會丟失。

如果您想避免這種情況,則需要運行調度程序腳本以在特定日期(可能每天一次)向您的頻道發布虛擬消息。

您可以使用永遠的npm模塊來連續運行節點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM