我用node和phantom.js构建了一个简单的应用程序(循环),该应用程序在Web上抓取了一些数据,并定期向我发送新结果的电子邮件。
当前,我在本地终端中运行命令,只要打开窗口,它将继续运行。我的问题是我应该如何实现一个界面(最有可能是Web应用程序),以便即使我离开页面也可以输入参数并使其运行?
我听说过一个名为“永远”的软件包,但是我不确定如果有人可以向我解释它的工作原理。
我有自己的共享托管,但从概念上我对如何实现这一目标感到困惑。我可以将代码推送到heroku,但是应该从那里创建一个简单的仪表板来启动和停止我的Web爬虫循环吗?在一个小时的闲置状态后,Heroku需要向上旋转,这样可能无法正常工作。
我的应用程序当前仅从命令行获取参数,因此显然我不得不从输入字段或其他内容中获取数据。
需要做什么的高级概念将有很大帮助。
答案 0 :(得分:2)
答案 1 :(得分:1)
我从未使用过Heroku,但是您可以创建一个Express服务器并使用Ngrok公开公开该应用程序。
您可以创建一个html页面并以这种方式通过Ngrok访问该应用程序。
以下是链接:https://ngrok.com/
快速概述:
1)创建并运行本地快递服务器
2)运行ngrok隧道服务(ngrok http 服务器端口)
3)然后,ngrok将使用一个URL进行响应,有点像一个哈希码,您可以使用它从任何地方访问您的应用程序
我不确定ngrok公共服务器将存活多长时间,根据我的经验,只要我运行该进程,它就会一直存在。
其他选择是直接将应用程序托管在Web服务(例如AWS)上,并公开端点-但是,如果您不熟悉,则需要进行一些学习。
答案 2 :(得分:0)
您可以使用Glitch进行托管。它是免费的isn't going anywhere(因此您不必担心它只是一个临时解决方案),并且尽管有些technical restrictions(尽管您需要进行一些设置,但它也适用于Node应用程序)以便自动ping您的应用程序,只是使其保持运行状态。)
只需使用express之类的网页来创建网页,并输入几个输入和开始/停止按钮即可。那些会将请求发送到服务器(GET请求可能是最简单的处理方式),然后在单击“开始”时可以将输入作为参数运行函数,而在单击“停止”时它可能以某种方式取消该函数或只是终止该函数节点进程。
这样,即使您的计算机处于关闭状态,您也应该能够(理论上)无限地运行您的应用程序。诸如PM2和Forever之类的功能将在关闭窗口的同时保持您的应用程序的运行,但是,除非涉及到某种魔术,否则就您所知,如果您关闭计算机,它们将不会起作用。