编辑:所以我发现web.xml <load-on-startup>1</load-on-startup>
标签是我需要的,但显然它不灵活支持。还有其他选择吗?
所以这可能是一个非常明显的问题,但我无法弄明白......
我有一个AppEngine灵活环境服务器,并使用此servlet。
@SuppressWarnings("serial")
@WebServlet(name = "servlet", value = "/")
public class FirebaseServlet extends HttpServlet {
private static final String TAG = FirebaseServlet.class.getSimpleName();
private DatabaseReference reference;
@Override
public void init() throws ServletException {
FirebaseOptions options = ...
Log.d(TAG, "debug");
}
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.getWriter().println("Server Running...");
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
}
@Override
public void destroy() {
super.destroy();
}
}
那么当我运行这个命令时:
mvn clean jetty:run
它将在localhost:8080上运行,但我总是必须实际打开Web浏览器,并导航到localhost:8080,如果我已经在它上面,我每次运行jetty:run命令时都要刷新页面。继续使用localhost / refresh之后,servlet启动,初始化firebase侦听器并打印* Sysout
debug
所以我确定在这里可以忽略一些非常明显的东西,如何让它自动启动servlet?因此,我不必浏览localhost网页,或者在生产的情况下,导航到appspot页面。
如果需要,这是我的App.yaml
runtime: java
env: flex
manual_scaling:
instances: 1
handlers:
- url: /.*
script: this field is required, but ignored
secure: always
runtime_config: # Optional
jdk: openjdk8
server: jetty9
resources:
cpu: 0.5
memory_gb: 0.6
disk_size_gb: 10
env_variables:
BUCKET_NAME: YOUR-BUCKET-NAME=bucketname.appspot.com
答案 0 :(得分:0)
您可以使用cron.yaml安排任务,以便它们以特定间隔自动启动。
有关详细信息,请参阅Google Cloud Platform文档https://cloud.google.com/appengine/docs/flexible/java/scheduling-jobs-with-cron-yaml