Я хотел бы запустить задачу в очереди задач GAE. Я шаг за шагом выполнил настройку из Task Queue Java в GAE, но когда я щелкаю (например) ссылку на моем веб-сайте (который вызывает сервлет, который запускает задачу), он только ставит задачу в очередь (как я вижу на «ссылке на очереди задач» в моей консоли AppEngine) и это никогда не запускается. Он успешно запускается, только если я нажимаю правую кнопку «Выполнить сейчас» (под столбцом «Действия»).
Итак, кто-нибудь знает, как запустить его автоматически (без необходимости заходить в консоль AppEngine и каждый раз нажимать «Выполнить сейчас»)?
Большое спасибо
[Изменить] Добавление кода:
[Веб-страница в формате HTML]:
<a href="/tasks/callTaskServlet">Call Task Servlet</a>
[CallTaskServlet.java]:
public class CallTaskServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
Queue queue = QueueFactory.getDefaultQueue();
queue.add(TaskOptions.Builder.withUrl("/tasks/taskServlet").param("act", "refresh").retryOptions(RetryOptions.Builder.withTaskRetryLimit(1)));
}
}
[TaskServlet.java]:
public class TaskServlet extends HttpServlet{
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String action = req.getParameter("act");
LOGGER.warning(action);
//Doing my stuff here…
}
}
[веб.xml]:
<servlet>
<servlet-name>Task</servlet-name>
<servlet-class>servlet.TaskServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Task</servlet-name>
<url-pattern>/tasks/taskServlet</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>CallTask</servlet-name>
<servlet-class>servlet.CallTaskServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CallTask</servlet-name>
<url-pattern>/tasks/callTaskServlet</url-pattern>
</servlet-mapping>
[Task Queues AppEngine]: Task Queues AppEngine
[Журнал GAE (/tasks/taskServlet не запущен)] Журнал GAE
Я что-то пропустил? Я надеюсь, что это достаточно.