我已经创建了一个与firebase连接的java-server。此服务器用于侦听firebase更改并相应地更新数据库。为了让它一直运行,我在main函数中添加了CountDownLatch,下面是我的代码。
CountDownLatch latch = new CountDownLatch(1);
while (true)
{
nextGamesRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
nextGames = snapshot;
setNextGame(nextGames);
}
@Override
public void onCancelled(DatabaseError error) {
System.out.println(error.toString());
System.out.println("3");
}
});
latch.await();
}我之所以分享上面的代码,是因为我是java新手,如果有更好的方法,我非常感谢你的建议。
让我们开门见山吧。我已经将我的整个项目打包到一个jar文件中,并将该文件部署在我的Aws ec2实例上。除了我总是需要从我的个人pc调用这个类之外,一切都运行得很好。我想让这个文件独立运行,而不需要从外部系统调用它。我看过tomcat,但它可以处理HTTP请求,或者如果我对tomcat的理解不正确,请告诉我。
所以问题是。我如何在我的实例上永远运行这个Jar?
发布于 2019-02-20 01:09:51
部署到AWS是一个非常广泛的主题,涉及到ASG和负载平衡,以实现高可用性、可扩展性和容错。Jenkins/Terraform/Docker/Packer for CICD。
但为了回答您的问题,请使用Ec2实例的“用户数据”功能并指定要运行的命令。在用户数据中提到该命令将确保在启动Ec2时运行该命令。
例如,
java -cp /home/ec2-user/App.jar com.test.MySampleClass假设: Ec2实例中已有App.jar。
如果它是一个web应用程序,那么你可以部署到tomcat。再次使用tomcat特性,并提到下载Ec2并启动它的一系列命令。
https://stackoverflow.com/questions/54764869
复制相似问题