Java 8 has reached end of support
and will be deprecated
on January 31, 2026. After deprecation, you won't be able to deploy Java 8
applications, even if your organization previously used an organization policy to
re-enable deployments of legacy runtimes. Your existing Java
8 applications will continue to run and receive traffic after their
deprecation date. We recommend that
you migrate to the latest supported version of Java.
Stay organized with collections
Save and categorize content based on your preferences.
The following code adds a task to a queue with options.
In index.html:
<!-- A basic index.html file served from the "/" URL. -->
<html>
<body>
<p>Enqueue a value, to be processed by a worker.</p>
<form action="/enqueue" method="post">
<input type="text" name="key">
<input type="submit">
</form>
</body>
</html>
In Enqueue.java:
// The Enqueue servlet should be mapped to the "/enqueue" URL.// With @WebServlet annotation the webapp/WEB-INF/web.xml is no longer required.@WebServlet(name="TaskEnque",description="taskqueue: Enqueue a job with a key",urlPatterns="/taskqueues/enqueue")publicclassEnqueueextendsHttpServlet{protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{Stringkey=request.getParameter("key");// Add the task to the default queue.Queuequeue=QueueFactory.getDefaultQueue();queue.add(TaskOptions.Builder.withUrl("/worker").param("key",key));response.sendRedirect("/");}}
In Worker.java:
// The Worker servlet should be mapped to the "/worker" URL.// With @WebServlet annotation the webapp/WEB-INF/web.xml is no longer required.@WebServlet(name="TaskWorker",description="TaskQueues: worker",urlPatterns="/taskqueues/worker")publicclassWorkerextendsHttpServlet{privatestaticfinalLoggerlog=Logger.getLogger(Worker.class.getName());protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{Stringkey=request.getParameter("key");// Do something with key.// ...}}
Tasks added to this queue will execute by calling the request handler at the URL /worker with the parameter key. They will execute at the rate set in the queue.xml file, or the default rate of 5 tasks per second.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-21 UTC."],[[["\u003cp\u003eThis content demonstrates how to add a task to a queue using legacy bundled services and APIs within the first-generation App Engine standard environment.\u003c/p\u003e\n"],["\u003cp\u003eThe provided \u003ccode\u003eindex.html\u003c/code\u003e includes a form to submit a value (\u003ccode\u003ekey\u003c/code\u003e) to the \u003ccode\u003e/enqueue\u003c/code\u003e URL for task queuing.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eEnqueue.java\u003c/code\u003e servlet handles POST requests to \u003ccode\u003e/taskqueues/enqueue\u003c/code\u003e, adding tasks with the provided \u003ccode\u003ekey\u003c/code\u003e to the default queue.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eWorker.java\u003c/code\u003e servlet, mapped to \u003ccode\u003e/taskqueues/worker\u003c/code\u003e, processes the tasks, receiving the \u003ccode\u003ekey\u003c/code\u003e parameter for execution.\u003c/p\u003e\n"],["\u003cp\u003eTasks in the queue are executed by calling the \u003ccode\u003e/worker\u003c/code\u003e request handler, with the rate determined by the \u003ccode\u003equeue.xml\u003c/code\u003e file or defaulting to 5 tasks per second.\u003c/p\u003e\n"]]],[],null,[]]