我在Meteor.startup中设置了Meteor.setInterval,但似乎在网站暂停一段时间后停止被调用。就好像流星检测到没有人在使用该网站,然后一旦有人再次使用该网站,就会再次调用Meteor.startup()。但我希望Meteor.setInterval中的代码能够继续运行,即使没有人在查看该站点。我该怎么做?
答案 0 :(得分:2)
你说的是完全正确的。如果没有观看,Meteor.com主机将关闭您的网站,并在此后第一次有人浏览时再次启动它。参考:
目前,保持运行的最安全方法是使用自己的服务器。 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您的应用。这样您就可以确保服务器获得足够的访问量来持续运行。