gpt4 book ai didi

java - 如何让 App Engine cron 作业显示在 Web 界面的 "scheduled tasks"选项卡中?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:39:58 25 4
gpt4 key购买 nike

我一直在构建一个应用程序,用于将 Google 分析数据从 Bigquery 的数据集移动到 Google 存储。

我的目的是在 Google App Engine 上部署网络应用程序并设置一些 cron 作业以定期调用正确的 URL,然后使用一些 servlet 来管理这些请求。

我在 eclipse 上开发并使用 Google 在此处提供的 App Engine 插件 https://developers.google.com/eclipse/ .

使用这个插件,我创建了一个“基于 Maven 的 Google App Engine 标准 Java 项目”,其中包含一个简单的 java servlet HelloAppEngine.java、一个基本的 index.jsp 页面和一个带有简单方法的类。下面是这三者的代码,web.xml 和 appengine-web.xml。

HelloAppEngine.java:

import java.io.IOException;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloAppEngine extends HttpServlet {

@Override
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException {

response.setContentType("text/plain");
response.getWriter().println("Hello App Engine!");

}
}

索引.jsp:

<!DOCTYPE html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="bigqueryexport.HelloInfo" %>
<html>
<head>
<link href='//fonts.googleapis.com/css?family=Marmelad' rel='stylesheet' type='text/css'>
<title>Hello App Engine Standard</title>
</head>
<body>
<h1>Hello App Engine -- Standard!</h1>

<p>This is <%= HelloInfo.getInfo() %>.</p>
<table>
<tr>
<td colspan="2" style="font-weight:bold;">Available Servlets:</td>
</tr>
<tr>
<td><a href='/hello'>The servlet</a></td>
</tr>
</table>

</body>
</html>

这是 web.xml:

<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<servlet>
<servlet-name>HelloAppEngine</servlet-name>
<servlet-class>bigqueryexport.HelloAppEngine</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloAppEngine</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

最后,appengine-web.xml:

<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
<threadsafe>true</threadsafe>
<system-properties>
<property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/>
</system-properties>
</appengine-web-app>

到目前为止,我没有编写任何代码,当我将此代码部署到 Google 平台时一切正常。现在,根据https://cloud.google.com/appengine/docs/standard/java/config/cron ,只需添加一个包含正确代码的 cron.xml 文件并再次部署应用程序,它就应该准备就绪。这是我在 appengine-web.xml 所在的同一文件夹中创建的 cron.xml。

<?xml version="1.0" encoding="UTF-8"?>
<cronentries>
<cron>
<url>/hello</url>
<description>test cron job</description>
<schedule>every 3 minutes</schedule>
</cron>
</cronentries>

根据上面提供的文档,这应该创建每 3 分钟对我的 servlet 执行一次获取请求的计划任务,但是当我再次部署应用程序时,cron 作业不会显示在 google 平台界面上,并且它也不会每 3 分钟工作一次。

我在这里错过了什么?

谢谢

PS:控制台编译输出的是这个

Beginning interaction for module default... 0% Scanning for jsp files. 0% Compiling jsp files. abr 04, 2017 4:34:24 PM org.apache.jasper.JspC processFile INFORMACI�N: Built File: \index.jsp warning: [options] bootstrap class path not set in conjunction with -source 1.7 Success. Temporary staging for module default directory left in D:\somepath You are about to deploy the following services: - project-id/default/20170404t163438 (from [D:\somepath\app.yaml]) Deploying to URL: [https://project-id.appspot.com]

Beginning deployment of service [default]... File upload done. Updating service [default]... .............................done. Deployed service [default] to [https://project-id.appspot.com]

You can stream logs from the command line by running: $ gcloud app logs tail -s default

To view your application in the web browser run: $ gcloud app browse

最佳答案

仅供引用,您可以在 {buildOutputPath}/appengine-staged/WEB-INF/appengine-generated/目录中找到 cron.yaml 文件。

gcloud app deploy --project=yourprojectname cron.yaml 会将 cron 作业部署到您的项目。

关于java - 如何让 App Engine cron 作业显示在 Web 界面的 "scheduled tasks"选项卡中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43182963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com