2012-12-22 66 views
4

我想创建一个Node.js应用程序,定期检查更新并安装它们,如果有的话。如何创建一个自我更新的Node.js应用程序?

的基本组件是明确的对我说:

  • 其中包含了更新程序包
  • 一个版本的系统(如SemVer Web服务器(或FTP服务器,文件系统,...) ),这样就可以知道哪些包是新
  • 一个公开密钥算法的签名更新包

然后,有可能会在何时检查更新,并安装更新不同的策略:

  • 在应用程序启动
  • 在应用端
  • 当idleing

的程序甚至可以在硬关机并自动重新启动。

但也有留下了一些问题:

  • 是否有已经提供了这样的系统可在任何公共管理模块?
  • 如何组织文件系统中的不同版本?基本上你会有一个主机和多个(版本化的)内核。是否应该有一个data所有文件夹?
  • 如何处理npm install & co。为新下载的包?
  • 如何处理损坏的更新?
  • 你怎么能实现这样的事情,以便它与Heroku兼容& co。你没有永久的驱动器,你可以开车去?

一般来说:你会如何尝试实现这样的系统?

+0

Err ...自我更新的应用程序听起来可能是一个好主意,但如果API或行为改变您以前工作的服务器将处于混乱状态。 – Zeta

+0

当然,这是我的责任,保持向后兼容......但问题依然存在:你会如何做这样的事情? –

+0

@GoloRoden你最终选择了哪种解决方案?我有类似的要求。 Tx – glose

回答

2

首先,您可以使用NPM本身进行包装和应用交付。其次,您可以添加一个脚本文件来在package.json文件中添加一个cron作业(例如'postinstall'或'update')以进行定期更新过程。在这个脚本中,您可以检查所有需要的更新。在Heroku中,您可以使用Scheduler Worker进行更新处理。

相关问题