2015-11-16 44 views
0

我需要创建一个nodejs“服务器”,它实际上不会提供任何资产或内容,但只会运行一些预定作业从一个数据库获取内容并更新另一个数据库。工作时间表应该是可配置的,并且应该能够随时取消工作。基本上我需要的是定期运行一个节点脚本。在过去,我创建了node/express项目,但我很难理解如何实现将在远程机器上运行的节点实例以及如何启动或终止它。我发现了一个名为“node-schedule”的npm软件包,它定期运行作业,但是如何将这个软件包放在远程机器实例上并运行它?如何创建一个nodejs实例以设定的时间表运行cron作业?

被考虑的一种可能性是在远程计算机上安排cron作业,该作业将按照设定的时间表执行“node updateDB.js”,但要求所有内容都保存在节点包中,而不是依赖于cron。

+2

A [谷歌搜索“node cron”](https://www.google.com/search?q=node+cron)创建了一大堆模块,用于支持将来某个时间运行的活动从node.js中 – jfriend00

回答

0

听起来很像ssh的工作。 就我个人而言,我不会使用NodeJS,这应该是相当微不足道的,与Node或其他,不知道为什么你坚持,说实话。我没有任何反对节点,但我不明白为什么这将是必要的,但肯定你可以用它来做这件事。

编辑:在阅读您的评论后,我确信有人认为节点是完成这项任务的好工具。我想我不明白你卡在哪里。你坚持什么部分? 我认为你应该能够很快解决这个问题。下面的链接应该足以将其放在一起。 http://book.mixu.net/node/ch9.html 如果您需要在远程服务器上执行ad hoc命令,则可以使用Node调用Ansible操作手册,在这种情况下,您需要使用发出命令的实例共享目标实例上的公用ssh密钥。还有其他的方法来剥皮这只猫,但根据所提供的信息,这就是我如何去做。我会使用Node和Ansible(需要python)+ SSH。

哦neato,也许如果我被迫使用NodeJS我会使用这个包。 https://www.npmjs.com/package/ssh2-exec 您是否找到解决问题的答案?在此分享。

+0

它不只是简单的数据库复制,因为数据在更新第二个数据库之前得到了处理。要求使用节点的原因是为了重用代码。另一个nodejs项目中已经有脚本获取数据,使用一些javascript处理它并在不同的数据库中更新它。这些脚本将在这个项目中重复使用,以便于维护。 – codneto

+0

我明白了,我认为情况可能如此。 –

相关问题