【发布时间】:2016-07-26 16:13:36
【问题描述】:
更新问题
我找不到任何示例或教程来通过处理程序从 cron 调用端点。
没有任何后端服务经验!!
旧的描述和代码
我通过 Android Studio 在 AppEngine 上为我的 Android 应用部署了一个 GCE 模块。
我能够通过我的 Android 应用程序中的端点客户端存根创建和获取信息。
对于清理应用引擎上的数据,有一个简单的方法可以比较并删除任何超过 5 天的数据。
如果通过java代码调用此方法运行良好。
我创建的 cron 存在问题。我不确定它是在运行还是在我的端点类中调用了正确的方法。在自动运行它时需要帮助。
我有不同的方法来声明方法名称和路径以及 cron 中的 url 条目,但还没有成功。
stackoverflow 上的其他解决方案我不清楚。
端点类方法
@ApiMethod(name = "cron.cleanData", path="cron/cleanData")
public void cleanData(@Nullable @Named("cursor") String cursorString,
@Nullable @Named("count") Integer count) throws NotFoundException {
System.out.print("cleanData... called");
CollectionResponse<Data> listData = listData(cursorString, count);
for (Data data : listData.getItems()) {
System.out.print("for..");
if(isOld(data.getTime(), data.getDate())){
removeData(data.getId());
System.out.print("removed.."+data.getId());
}
}
}
WEB-INF中的cron.xml
<?xml version="1.0" encoding="UTF-8"?>
<cronentries>
<cron>
<url>/cleanData</url>
<description>Clean Storage</description>
<schedule>every 1 minutes</schedule>
<timezone>America/Hawaii</timezone>
</cron>
</cronentries>
web.xml
<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" version="2.5">
<servlet>
<servlet-name>SystemServiceServlet</servlet-name>
<servlet-class>com.google.api.server.spi.SystemServiceServlet</servlet-class>
<init-param>
<param-name>services</param-name>
<param-value><MY_PACKAGE>.MyEndpoint</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>SystemServiceServlet</servlet-name>
<url-pattern>/_ah/spi/*</url-pattern>
</servlet-mapping>
<filter>
<filter-name>ObjectifyFilter</filter-name>
<filter-class>com.googlecode.objectify.ObjectifyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>ObjectifyFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<security-constraint>
<web-resource-collection>
<web-resource-name>cron</web-resource-name>
<url-pattern>/cron/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
</web-app>
【问题讨论】:
-
我没看懂那里的答案
-
你能分享任何代码示例吗?
-
有什么更新吗?连我都不知道怎么办。我到处搜索,他们所做的只是回复 GCE 文档中所说的相同内容。
标签: java android google-app-engine android-studio cron