2016-11-04 49 views
2

我有一个java servlet在应用程序引擎标准环境中运行,该应用程序引擎标准环境由cron作业定期触发。该servlet从firebase数据库读取数据。这个servlet在大约一天内工作正常,但是看起来它无法连接到firebase数据库。似乎解决这个问题的唯一方法是重新部署该servlet。通过cron作业运行的Google应用程序引擎servlet停止工作后

https://cloud.google.com/solutions/mobile/firebase-app-engine-android-studio#adding_backend_logic_using_app_engine

有其他人遇到这个问题,火力点:

我的应用程序,在这个环节是非常相似的例子吗?

谢谢。

回答

2

这是Firebase Java服务器库的已知问题。管理与Firebase的连接的线程在24小时后被GAE杀死。它涉及到的事实,手动缩放的情况下可以工作24小时,在这里松散记录只运行:

https://cloud.google.com/appengine/docs/java/an-overview-of-app-engine#scaling_types_and_instance_classes

也许不是你可以尝试Firebase in a flexible instance

编辑:此问题已修复在版本4.0.4中的Firebase admin library for Java中。

+0

感谢您的信息,但我仍然有点困惑。我的cron作业并非24小时连续运行。它做了少量的工作,然后完成了。它不会一直在听Firebase数据库变化。 我以为(可能是错误的),当cron作业运行时,它创建一个servlet的新实例,调用doGet(),然后servlet退出。 您是否知道是否有办法避免此问题,可能是在创建\销毁servlet时关闭并重新创建Firebase连接?如果可能的话,我宁愿不去一个灵活的环境。 – Heath

+0

按照说明中的说明将手动实例设置为1时,即使作业未处于活动状态,也会使实例始终运行。这件事发生在我身上。 –

+0

切换到灵活的环境后,它现在似乎工作正常。谢谢。 – Heath