Google Cloud Tasks

Firestore in Datastore mode is a NoSQL document database built for automatic scaling, high performance, and ease of application development.

For more information about the service visit Cloud Tasks product documentation

Prerequisite Tasks

Queue operations

Create queue

To create new Queue use CloudTasksQueueCreateOperator

tests/system/providers/google/tasks/example_queue.py

create_queue = CloudTasksQueueCreateOperator(
    location=LOCATION,
    task_queue=Queue(stackdriver_logging_config=dict(sampling_ratio=0.5)),
    queue_name=QUEUE_ID + "{{ task_instance.xcom_pull(task_ids='random_string') }}",
    retry=Retry(maximum=10.0),
    timeout=5,
    task_id="create_queue",
)

Delete queue

To delete Queue use CloudTasksQueueDeleteOperator

tests/system/providers/google/tasks/example_queue.py

delete_queue = CloudTasksQueueDeleteOperator(
    location=LOCATION,
    queue_name=QUEUE_ID + "{{ task_instance.xcom_pull(task_ids='random_string') }}",
    task_id="delete_queue",
)

Resume queue

To resume Queue use CloudTasksQueueResumeOperator

tests/system/providers/google/tasks/example_queue.py

resume_queue = CloudTasksQueueResumeOperator(
    location=LOCATION,
    queue_name=QUEUE_ID + "{{ task_instance.xcom_pull(task_ids='random_string') }}",
    task_id="resume_queue",
)

Pause queue

To pause Queue use CloudTasksQueuePauseOperator

tests/system/providers/google/tasks/example_queue.py

pause_queue = CloudTasksQueuePauseOperator(
    location=LOCATION,
    queue_name=QUEUE_ID + "{{ task_instance.xcom_pull(task_ids='random_string') }}",
    task_id="pause_queue",
)

Purge queue

To purge Queue use CloudTasksQueuePurgeOperator

tests/system/providers/google/tasks/example_queue.py

purge_queue = CloudTasksQueuePurgeOperator(
    location=LOCATION,
    queue_name=QUEUE_ID + "{{ task_instance.xcom_pull(task_ids='random_string') }}",
    task_id="purge_queue",
)

Get queue

To get Queue use CloudTasksQueueGetOperator

tests/system/providers/google/tasks/example_queue.py

get_queue = CloudTasksQueueGetOperator(
    location=LOCATION,
    queue_name=QUEUE_ID + "{{ task_instance.xcom_pull(task_ids='random_string') }}",
    task_id="get_queue",
)

get_queue_result = BashOperator(
    task_id="get_queue_result",
    bash_command=f"echo {get_queue.output}",
)

Update queue

To update Queue use CloudTasksQueueUpdateOperator

tests/system/providers/google/tasks/example_queue.py

update_queue = CloudTasksQueueUpdateOperator(
    task_queue=Queue(stackdriver_logging_config=dict(sampling_ratio=1)),
    location=LOCATION,
    queue_name=QUEUE_ID + "{{ task_instance.xcom_pull(task_ids='random_string') }}",
    update_mask=FieldMask(paths=["stackdriver_logging_config.sampling_ratio"]),
    task_id="update_queue",
)

List queues

To list all Queues use CloudTasksQueuesListOperator

tests/system/providers/google/tasks/example_queue.py

list_queue = CloudTasksQueuesListOperator(location=LOCATION, task_id="list_queue")

Tasks operations

Create task

To create new Task in a particular queue use CloudTasksTaskCreateOperator

tests/system/providers/google/tasks/example_tasks.py

create_task = CloudTasksTaskCreateOperator(
    location=LOCATION,
    queue_name=QUEUE_ID + "{{ task_instance.xcom_pull(task_ids='random_string') }}",
    task=TASK,
    task_name=TASK_NAME + "{{ task_instance.xcom_pull(task_ids='random_string') }}",
    retry=Retry(maximum=10.0),
    timeout=5,
    task_id="create_task_to_run",
)

Get task

To get the Tasks in a particular queue use CloudTasksTaskGetOperator

tests/system/providers/google/tasks/example_tasks.py

tasks_get = CloudTasksTaskGetOperator(
    location=LOCATION,
    queue_name=QUEUE_ID + "{{ task_instance.xcom_pull(task_ids='random_string') }}",
    task_name=TASK_NAME + "{{ task_instance.xcom_pull(task_ids='random_string') }}",
    task_id="tasks_get",
)

Run task

To run the Task in a particular queue use CloudTasksTaskRunOperator

tests/system/providers/google/tasks/example_tasks.py

run_task = CloudTasksTaskRunOperator(
    location=LOCATION,
    queue_name=QUEUE_ID + "{{ task_instance.xcom_pull(task_ids='random_string') }}",
    task_name=TASK_NAME + "{{ task_instance.xcom_pull(task_ids='random_string') }}",
    task_id="run_task",
)

List tasks

To list all Tasks in a particular queue use CloudTasksTasksListOperator

tests/system/providers/google/tasks/example_tasks.py

list_tasks = CloudTasksTasksListOperator(
    location=LOCATION,
    queue_name=QUEUE_ID + "{{ task_instance.xcom_pull(task_ids='random_string') }}",
    task_id="list_tasks",
)

Delete task

To delete the Task from particular queue use CloudTasksTaskDeleteOperator

tests/system/providers/google/tasks/example_tasks.py

create_task = CloudTasksTaskCreateOperator(
    location=LOCATION,
    queue_name=QUEUE_ID + "{{ task_instance.xcom_pull(task_ids='random_string') }}",
    task=TASK,
    task_name=TASK_NAME + "{{ task_instance.xcom_pull(task_ids='random_string') }}",
    retry=Retry(maximum=10.0),
    timeout=5,
    task_id="create_task_to_run",
)

References

For further information, take a look at:

Was this entry helpful?