Are*_*yan 6 cron web-crawler exit node.js serverless-architecture
我正在创建基于NodeJS的爬虫,它正在使用node-cron包,我需要阻止进入脚本退出,因为应用程序应该永远作为cron运行,并将在特定时间段使用日志执行爬虫.
在Web应用程序中,服务器将监听并阻止终止,但在无服务器应用程序中,它将在执行所有代码后退出程序,并且不会等待crons.
我应该while(true)为此编写循环吗?为此目的,节点中的最佳实践是什么?
提前致谢!
因为nodejs是单线程,while(true)所以不起作用.它只会抓住整个CPU,其他任何东西都无法运行.
nodejs将在未来可能运行的任何活动时保持运行.这包括开放的TCP套接字,监听服务器,定时器等......
要更具体地回答,我们需要查看您的代码并了解它是如何使用node-cron的,但是您可以通过添加一个简单的代码来保持nodejs进程运行setInterval():
setInterval(function() {
console.log("timer that keeps nodejs processing running");
}, 1000 * 60 * 60);
Run Code Online (Sandbox Code Playgroud)
但是,node-cron本身使用定时器,因此看起来如果你正确使用node-cron并且你正确地安排了将来运行的任务,那么你的nodejs进程不应该停止.所以,我怀疑你真正的问题是你没有使用node-cron正确安排未来的任务.只有当您向我们展示使用node-cron的实际代码时,我们才能帮助您解决该问题.
小智 6
我认为防止退出流程的最佳方法是:
process.stdin.resume();
Run Code Online (Sandbox Code Playgroud)
我在这里/sf/answers/982307581/找到了这个解决方案,它工作正常。
| 归档时间: |
|
| 查看次数: |
5172 次 |
| 最近记录: |