防止NodeJS程序退出,prevent NodeJS program from exiting

问题

我正在创建基于 NodeJS 的爬虫,该爬虫正在与 node-cron 软件包一起使用,并且我需要防止退出脚本退出,因为应用程序应永久作为cron运行,并将在某些时段执行带有日志的爬虫.

在Web应用程序中,服务器将侦听并阻止终止,但是在无服务器应用程序中,它将在所有代码执行完毕后退出程序,而不会等待 cron.

我应该为此编写while(true)循环吗? 为此,节点中的最佳做法是什么?

提前谢谢

解决方案

因为nodejs是单线程,所以while(true)将不起作用.它只会抢夺整个 CPU,其他任何东西都无法运行.

nodejs将在任何可能在未来运行的活动中继续运行.这包括打开的 TCP 套接字,侦听服务器,计时器等...

要更具体地回答,我们需要查看您的代码并查看它如何使用node-cron,但是您可以通过添加一个简单的 setInterval() 来保持 nodejs 进程的运行,例如:

setInterval(function() {
    console.log("timer that keeps nodejs processing running");
}, 1000 * 60 * 60);

但是,node-cron本身使用计时器,因此看来,如果您正确使用了node-cron并正确计划了将来要运行的任务,则您的nodejs进程不应停止.因此,我怀疑您

的真正问题是您没有正确地使用node-cron为将来安排任务.仅当您向我们展示使用node-cron的实际代码时,我们才能为您解决该问题.

转载

防止NodeJS程序退出(prevent NodeJS program from exiting)