Задание Cron выполняется только один раз в Google App Engine для Java - PullRequest
1 голос
/ 02 ноября 2019

Я хочу настроить работу cron, которая отправляет электронное письмо каждые 2 минуты. Однако, когда я запускаю задание cron, оно сразу же отправляет электронное письмо, а затем уже никогда. Но когда я захожу в консоль Google Cloud Console и просматриваю свои задания cron, она говорит, что она работает успешно, но я не получаю электронные письма.

Я следовал этому руководству: https://rominirani.com/episode-9-using-the-cron-service-to-run-scheduled-tasks-8bc7dba91a77

web.xml file:

<servlet>
    <servlet-name>subscribe</servlet-name>
    <servlet-class>blogapp.CronServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>subscribe</servlet-name>
    <url-pattern>/subscribe</url-pattern>
</servlet-mapping>

cron.xml file:

<cronentries>
  <cron>
    <url>/subscribe</url>
    <description>Daily Digest from The Rambling Programmer</description>
    <!-- <schedule>every day 17:00</schedule> -->
    <schedule>every 2 minutes</schedule>
    <timezone>America/Chicago</timezone>
  </cron>
</cronentries>

CronServlet.java file:

public class CronServlet extends HttpServlet {

private static final Logger _logger = Logger.getLogger(CronServlet.class.getName());
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
    try {
    _logger.info("Cron Job has been executed");
    /// other logic to send email
    /// sendEmail(email, subject, content);
    }

    resp.sendRedirect("/subscribe.jsp");
    }
    catch (Exception ex) {
        resp.getWriter().println("Error subscribing");
    }
}
@Override
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doGet(req, resp);

}

Нет сообщений об ошибках, и одно сообщение успешно отправлено, поэтому я не уверен, почему оно не запускается каждые две минуты, как я хотел.

Спасибо!

1 Ответ

1 голос
/ 02 ноября 2019

Я узнал, что это потому, что по какой-то причине он не вызывал sendEmail ()!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...