我将Java代码放在Google Cloud Tasks中的哪里

时间:2018-12-26 10:56:47

标签: google-cloud-platform

我是Google Cloud Tasks的新手。

我指的是https://cloud.google.com/tasks/docs/quickstart-appengine

我已经成功设置了Java示例应用程序,创建了App Engine队列并将任务添加到App Engine队列中。

但是,据我了解,该示例应用实际上并未执行任何操作。如果我希望应用程序做一些有用的事情,我应该将代码放在哪里?

1 个答案:

答案 0 :(得分:1)

在Java示例应用程序之后,您的代码应放在UserDefaults中。

您发送的有效负载将由处理程序获取,您要执行的代码将在该处。您可以在那里使用有效负载来执行代码。

这是我的代码的样子:

TaskServlet.java

@WebServlet( name = "Tasks", description = "Create Cloud Task", urlPatterns = "/tasks/create" //Relative path to this handler ) public class TaskServlet extends HttpServlet { private static Logger log = Logger.getLogger(TaskServlet.class.getName()); @Override public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { log.info("Received task request: " + req.getServletPath()); String body = req.getReader() .lines() .reduce("", (accumulator, actual) -> accumulator + actual); if (!body.isEmpty()) { log.info("Request payload: " + body); String output = String.format("Received task with payload %s", body); resp.getOutputStream().write(output.getBytes()); log.info("Sending response: " + output); //For instance, something like... myFunction(body); //body being the payload resp.setStatus(HttpServletResponse.SC_OK); } else { log.warning("Null payload received in request to " + req.getServletPath()); } } private void myFunction(String str){ //Your code here } } 中观察如何设置处理程序的相对路径:

CreateTask.java

您还可以创建不同的处理程序,为它们提供不同的相对URI。