Java 无法在具有多个服务的Google App Engine应用程序中创建cron作业

Java 无法在具有多个服务的Google App Engine应用程序中创建cron作业,java,google-app-engine,cron,Java,Google App Engine,Cron,当我部署具有多个服务的应用程序时,我无法看到要在App Engine控制台中注册的cron作业,尽管在中描述了以下目录层次结构 这是我的cron.xml文件,我将其放在默认服务的WEB-INF目录中: <?xml version="1.0" encoding="UTF-8"?> <cronentries> <cron> <url>/cron</url> &l

当我部署具有多个服务的应用程序时,我无法看到要在App Engine控制台中注册的cron作业,尽管在中描述了以下目录层次结构

这是我的cron.xml文件,我将其放在默认服务的WEB-INF目录中:

<?xml version="1.0" encoding="UTF-8"?>
<cronentries>
    <cron>
        <url>/cron</url>
        <description>Execute scheduled tasks</description>
        <schedule>every 5 minutes</schedule>
    </cron>
</cronentries>
我的GAE应用程序有4个服务,都在application.xml文件中定义

我的项目结构:


您能告诉我,我的cron作业没有运行,我做错了什么吗?

尝试在单独的命令中部署cron配置:

如果您正在使用:gcloud app deploy cron.yaml 或:./gradlew appengineUpdateCron 或:mvn appengine:update\u cron
我遇到了同样的问题,在部署解决后运行命令

看起来你很好地遵守了文件。尝试转到URL,看看你是否在应用程序引擎日志中得到任何错误或任何东西。好吧,由于这个URL是在web.xml下注册的,所以我只需手动运行cron处理程序。没有错误。这意味着您的cron作业已成功运行?你检查过应用程序引擎的队列列表吗?Cron作业成功运行意味着它们会自动运行,对吗?我检查了日志,它们显示cron只有在我手动运行/cron时才会触发。这是正常的,因为cron处理程序只是在web.xml中/cron url下注册的另一个servlet。您是在谈论本地开发服务器还是应用引擎生产服务器?Cron作业不会在本地开发服务器上自动运行感谢您的回答,这是一个老问题,所以如果我没有弄错的话,我想我们也尝试过,但我记不清了。我稍后再试试看。
<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
  <application>default</application>
  <version>1</version>
  <threadsafe>true</threadsafe>

  <sessions-enabled>true</sessions-enabled>

  <manual-scaling>
    <instances>1</instances>
  </manual-scaling>
</appengine-web-app>
<?xml version="1.0" encoding="UTF-8"?>
<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_6.xsd" version="6">
  <display-name>modules-ear</display-name>
  <module>
    <web>
      <web-uri>module-default-1.0</web-uri>
      <context-root>module-default</context-root>
    </web>
  </module>
  <module>
    <web>
      <web-uri>module-1-1.0</web-uri>
      <context-root>module-1</context-root>
    </web>
  </module>
  <!-- declared other modules likewise -->
  <library-directory>lib</library-directory>
</application>