Meteor服务器在不使用时会关闭吗? Meteor.setInterval似乎最终会停止

时间:2014-01-29 12:58:27

标签: javascript meteor

我在Meteor.startup中设置了Meteor.setInterval,但似乎在网站暂停一段时间后停止被调用。就好像流星检测到没有人在使用该网站,然后一旦有人再次使用该网站,就会再次调用Meteor.startup()。但我希望Meteor.setInterval中的代码能够继续运行,即使没有人在查看该站点。我该怎么做?

3 个答案:

答案 0 :(得分:2)

你说的是完全正确的。如果没有观看,Meteor.com主机将关闭您的网站,并在此后第一次有人浏览时再次启动它。参考:

  

https://stackoverflow.com/a/19072230/586086

目前,保持运行的最安全方法是使用自己的服务器。 Hubert OG建议定期ping服务器也可以。

答案 1 :(得分:1)

据我所知,服务器不应该停止运行 - 确保您的代码在服务器而不是客户端上执行。

if (Meteor.isServer) {
  Meteor.startup(function () {
    // code to run on server at startup

  });
}

如果您能提供任何代码段,那么我们确实知道您在做什么,这将非常有用。

答案 2 :(得分:1)

Meteor服务器本身并没有停止运行。但是,它运行的基础设施可以。例如,如果您的服务器在Heroku上的免费计划上运行,它将在没有视图时休眠。我不知道Meteor.com,但他们可能会这样做。

此外,Meteor服务器可以失败,因此必须有一个监控守护进程,在这种情况下将恢复服务器(forever完成工作)。

针对您的问题的一个简单补救措施是使用外部监控工具(如Uptime robot)定期ping您的应用。这样您就可以确保服务器获得足够的访问量来持续运行。