Use a Cloud Tasks queue to buffer your workflow executions

Creates and adds a large number of tasks to the Cloud Tasks queue to execute a child workflow.

Explore further

For detailed documentation that includes this code sample, see the following:

Code sample

YAML

  main 
 : 
  
 steps 
 : 
  
 - 
  
 init 
 : 
  
 assign 
 : 
  
 - 
  
 project_id 
 : 
  
 ${sys.get_env("GOOGLE_CLOUD_PROJECT_ID")} 
  
 - 
  
 project_number 
 : 
  
 ${sys.get_env("GOOGLE_CLOUD_PROJECT_NUMBER")} 
  
 - 
  
 location 
 : 
  
 ${sys.get_env("GOOGLE_CLOUD_LOCATION")} 
  
 - 
  
 workflow_child_name 
 : 
  
 "workflow-child" 
  
 - 
  
 queue_name 
 : 
  
 "queue-workflow-child" 
  
 - 
  
 enqueue_tasks_to_execute_child_workflow 
 : 
  
 for 
 : 
  
 value 
 : 
  
 iteration 
  
 range 
 : 
  
 [ 
 1 
 , 
  
 100 
 ] 
  
 steps 
 : 
  
 - 
  
 iterate 
 : 
  
 assign 
 : 
  
 - 
  
 data 
 : 
  
 iteration 
 : 
  
 ${iteration} 
  
 - 
  
 exec 
 : 
  
 # Encode object to JSON string in expression for workflow argument 
  
 argument 
 : 
  
 ${json.encode_to_string(data)} 
  
 - 
  
 create_task_to_execute_child_workflow 
 : 
  
 call 
 : 
  
 googleapis.cloudtasks.v2.projects.locations.queues.tasks.create 
  
 args 
 : 
  
 parent 
 : 
  
 ${"projects/" + project_id + "/locations/" + location + "/queues/" + queue_name} 
  
 body 
 : 
  
 task 
 : 
  
 httpRequest 
 : 
  
 body 
 : 
  
 ${base64.encode(json.encode(exec))} 
  
 url 
 : 
  
 ${"https://workflowexecutions.googleapis.com/v1/projects/" + project_id + "/locations/" + location + "/workflows/" + workflow_child_name + "/executions"} 
  
 oauthToken 
 : 
  
 serviceAccountEmail 
 : 
  
 ${project_number + "-compute@developer.gserviceaccount.com"} 
 

What's next

To search and filter code samples for other Google Cloud products, see the Google Cloud sample browser .

Create a Mobile Website
View Site in Mobile | Classic
Share by: