Go 1.11 has reached end of support
and will be deprecated
on January 31, 2026. After deprecation, you won't be able to deploy Go 1.11
applications, even if your organization previously used an organization policy to
re-enable deployments of legacy runtimes. Your existing Go
1.11 applications will continue to run and receive traffic after their
deprecation date. We
recommend that you migrate to the latest supported version of Go.
Stay organized with collections
Save and categorize content based on your preferences.
This page describes how to create a pull queue. You must create the queue before
you can add tasks to it. The page also describes how to pause or delete a queue.
Defining queues with queue.yaml
You can define pull queues using the queue.yaml file for your application.
The process is the same as creating named push queues, with a specialized directive, mode: pull, added to the file.
queue:
- name: my-queue-name
mode: pull
You use the gcloud CLI gcloud command to upload the file.
gcloud app deploy queue.yaml
Disabling queues
You can disable, or pause, a queue by removing its definition from your queue
configuration file and then uploading the updated file.
Once the updated file is uploaded, the queue is set to "disabled" and
its rate is set to 0. Any tasks that are in the queue or new tasks that are
added to the queue will not be processed. You can re-enable the disabled queue
by uploading a new queue file with the queue defined.
[[["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-25 UTC."],[[["\u003cp\u003eThis page details the process of creating pull queues, which must be established before tasks can be added to them.\u003c/p\u003e\n"],["\u003cp\u003ePull queues are defined using a \u003ccode\u003equeue.yaml\u003c/code\u003e file with the \u003ccode\u003emode: pull\u003c/code\u003e directive, and this file is uploaded via the \u003ccode\u003egcloud app deploy queue.yaml\u003c/code\u003e command.\u003c/p\u003e\n"],["\u003cp\u003eQueues can be disabled or paused by removing their definition from the \u003ccode\u003equeue.yaml\u003c/code\u003e file and uploading the updated file, or from within the Google Cloud console.\u003c/p\u003e\n"],["\u003cp\u003eDeleting a queue requires first disabling it by removing it from the configuration file, uploading the new file, and then deleting it via the Google Cloud console.\u003c/p\u003e\n"],["\u003cp\u003eMixing the \u003ccode\u003equeue.yaml\u003c/code\u003e upload method with Queue Management methods through the Cloud Tasks API is not recommended, and the local development server does not support pull queues.\u003c/p\u003e\n"]]],[],null,["# Creating Pull Queues\n\nThis page describes how to create a pull queue. You must create the queue before\nyou can add tasks to it. The page also describes how to pause or delete a queue.\n| This API is supported for first-generation runtimes and can be used when [upgrading to corresponding second-generation runtimes](/appengine/docs/standard/\n| go\n| /services/access). If you are updating to the App Engine Go 1.12+ runtime, refer to the [migration guide](/appengine/migration-center/standard/migrate-to-second-gen/go-differences) to learn about your migration options for legacy bundled services.\n\nDefining queues with `queue.yaml`\n---------------------------------\n\nYou can define pull queues using the `queue.yaml` file for your application.\nThe process is the same as [creating named push queues](/appengine/docs/legacy/standard/go111/taskqueue/push/creating-push-queues), with a specialized directive, [`mode: pull`](/appengine/docs/legacy/standard/go111/config/queueref#mode), added to the file. \n\n queue:\n - name: my-queue-name\n mode: pull\n\nYou use the gcloud CLI `gcloud` command to upload the file. \n\n gcloud app deploy `queue.yaml`\n\n| **Note:** If you are using a service account to manage authentication for deploying your queue configuration file, it needs to have the `serviceusage.services.list` permission. This permission can be added either using the [`serviceusage.serviceUsageViewer`](/iam/docs/understanding-roles#service-usage-roles) role or by creating a [custom role](/iam/docs/understanding-custom-roles) with that permission.\n| **Caution:** Queue creation for the Task Queue service can also be managed using Queue Management methods available directly through the Cloud Tasks API, but mixing the `queue.yaml` upload method with Queue Management methods can produce unexpected results and is not recommended. For more information, see [Overview of Queue Management and queue.yaml](/tasks/docs/queue-yaml). Also note that uploading a `queue.yaml` file via the gcloud CLI below version `332.0.0` uses a deprecated interface to the service. Starting on `2022-09-20`, attempts to use the upload method can fail with server errors. To resolve this, make sure the Cloud Tasks API is enabled in your project and your gcloud CLI is updated to at least version `332.0.0`.\n\nDisabling queues\n----------------\n\nYou can disable, or pause, a queue by removing its definition from your queue\nconfiguration file and then uploading the updated file.\n\nOnce the updated file is uploaded, the queue is set to \"disabled\" and\nits rate is set to 0. Any tasks that are in the queue or new tasks that are\nadded to the queue will not be processed. You can re-enable the disabled queue\nby uploading a new queue file with the queue defined.\n\nYou can also pause a queue from within the\n[Cloud Tasks page in the Google Cloud console](https://console.cloud.google.com/cloudtasks).\n\nDeleting queues\n---------------\n\nTo delete a queue you must first disable it:\n\n1. Remove the queue definition from your queue configuration file.\n\n2. Upload the changed file.\n\n gcloud app deploy `queue.yaml`\n\nOnce the queue is disabled, use the Google Cloud console to delete it.\n\n1. In the Google Cloud console, select the queue.\n\n [Go to Cloud Tasks](https://console.cloud.google.com/cloudtasks)\n2. Click **Delete queue**.\n\nIf you delete a queue from the Google Cloud console, you must wait 7 days\nbefore recreating with the same name.\n| **Important:** The local development server (`dev_appserver`) does not support pull queues. To test your pull queues and make sure you have the details of your configuration correct, you'll need to push your queue configuration file to an App Engine staging environment.\n\nWhat's next\n-----------\n\nLearn how to [create tasks](/appengine/docs/legacy/standard/go111/taskqueue/pull/creating-tasks)."]]