Java GWT cron作业未运行

Java GWT cron作业未运行,java,google-app-engine,gwt,cron,Java,Google App Engine,Gwt,Cron,我正在创建一个小的web应用程序。我有一个cron任务,从数据库中存储的数据定期发送电子邮件。但是,我认为cron作业根本没有运行 文件在这里。 cron.xml /cron/MailingServlet 把你的Cron工作描述放在这里 每1分钟 web.xml <servlet> <servlet-name>mailingService</servlet-name> <servlet-class>com.peter.from.

我正在创建一个小的web应用程序。我有一个cron任务,从数据库中存储的数据定期发送电子邮件。但是,我认为cron作业根本没有运行

文件在这里。 cron.xml


/cron/MailingServlet
把你的Cron工作描述放在这里
每1分钟
web.xml

<servlet>
    <servlet-name>mailingService</servlet-name>
    <servlet-class>com.peter.from.cron.MailingServlet</servlet-class>   
</servlet>

<servlet-mapping>
    <servlet-name>mailingService</servlet-name>
    <url-pattern>/cron/MailingServlet</url-pattern>
</servlet-mapping>

</cronentries>

邮寄服务
com.peter.from.cron.MailingServlet
邮寄服务
/cron/MailingServlet
还有MailingServlet.java

@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp) {

    _logger.info("CRON EXECUTED");
    List<Note> notes = new ArrayList<Note>();
    PersistenceManager pm = PMF.getPersistenceManager();

    long now = System.currentTimeMillis();

    Query q = pm.newQuery(Note.class);
    q.setFilter("currentTime >= scheduledTime");
    q.declareParameters("long currentTime");

    try{
        notes =  (List<Note>) q.execute(now);
        for(Note n: notes){
            this.mail(n.getEmail(), n.getMessage());
            pm.deletePersistent(n);

        }

    }catch(Exception e){
        _logger.info(e.getLocalizedMessage());
    }
}
@覆盖
公共无效数据集(HttpServletRequest请求、HttpServletResponse响应){
_logger.info(“CRON已执行”);
列表注释=新建ArrayList();
PersistenceManager pm=PMF.getPersistenceManager();
long now=System.currentTimeMillis();
Query q=pm.newQuery(Note.class);
q、 setFilter(“currentTime>=scheduledTime”);
q、 申报参数(“长当前时间”);
试一试{
注释=(列表)q.execute(现在);
用于(注n:注){
this.mail(n.getEmail(),n.getMessage());
pm.deletepsistent(n);
}
}捕获(例外e){
_info(例如getLocalizedMessage());
}
}

非常感谢您的帮助。

如果cron启动,您将在日志中看到它,是否有任何帮助?cron作业是否列在仪表板的cron部分?它列在仪表板中,在日志中有许多条目
2014-05-21 10:23:27.936/cron/MailingServlet 200 8ms 0kb AppEngine Google;(+http://code.google.com/appengine)module=默认版本=10.1.0.1---[21/May/2014:10:23:27-0700]“GET/cron/MailingServlet HTTP/1.1”200 0-“AppEngine Google(+http://code.google.com/appengine)“来自.appspot.com”ms=8 cpu_ms=41队列_name=_crontask_name=7bdbb6e6079794063fc7b417d96c1085 app_engine_release=1.9.5 instance=00C61B17CB5C40E76CA8EE8DDF811FFBE8EC846
,因此cron作业正在启动,并且正在运行并返回状态200。看来一切都很好。这意味着,如果电子邮件没有被发送,要么你的代码没有发送它们,要么它们没有被传递。您是否尝试过直接调用“/cron/MailingServlet”?
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp) {

    _logger.info("CRON EXECUTED");
    List<Note> notes = new ArrayList<Note>();
    PersistenceManager pm = PMF.getPersistenceManager();

    long now = System.currentTimeMillis();

    Query q = pm.newQuery(Note.class);
    q.setFilter("currentTime >= scheduledTime");
    q.declareParameters("long currentTime");

    try{
        notes =  (List<Note>) q.execute(now);
        for(Note n: notes){
            this.mail(n.getEmail(), n.getMessage());
            pm.deletePersistent(n);

        }

    }catch(Exception e){
        _logger.info(e.getLocalizedMessage());
    }
}