2323import json
2424import pathlib
2525from urllib .parse import urlparse
26- from firebase_admin import initialize_app , storage
26+ from firebase_admin import initialize_app , storage , functions
2727from firebase_functions import https_fn , tasks_fn , params
2828import google .auth
2929from google .auth .transport .requests import AuthorizedSession
@@ -96,9 +96,7 @@ def backupapod(req: tasks_fn.CallableRequest) -> str:
9696@https_fn .on_request ()
9797def enqueuebackuptasks (_ : https_fn .Request ) -> https_fn .Response :
9898 """Adds backup tasks to a Cloud Tasks queue."""
99- tasks_client = tasks_v2 .CloudTasksClient ()
100- task_queue = tasks_client .queue_path (params .PROJECT_ID .value , SupportedRegion .US_CENTRAL1 ,
101- "backupapod" )
99+ task_queue = functions .task_queue ("backupapod" )
102100 target_uri = get_function_url ("backupapod" )
103101
104102 for i in range (BACKUP_COUNT ):
@@ -108,19 +106,14 @@ def enqueuebackuptasks(_: https_fn.Request) -> https_fn.Response:
108106 schedule_delay = timedelta (hours = batch )
109107 schedule_time = datetime .now () + schedule_delay
110108
109+ dispatch_deadline_seconds = 60 * 5 # 5 minutes
110+
111111 backup_date = BACKUP_START_DATE + timedelta (days = i )
112112 body = {"data" : {"date" : backup_date .isoformat ()[:10 ]}}
113- task = tasks_v2 .Task (http_request = {
114- "http_method" : tasks_v2 .HttpMethod .POST ,
115- "url" : target_uri ,
116- "headers" : {
117- "Content-type" : "application/json"
118- },
119- "body" : json .dumps (body ).encode ()
120- },
121- schedule_time = schedule_time )
122- tasks_client .create_task (parent = task_queue , task = task )
123-
113+ task_options = functions .TaskOptions (schedule_time = schedule_time ,
114+ dispatch_deadline_seconds = dispatch_deadline_seconds ,
115+ uri = target_uri )
116+ task_queue .enqueue (body , task_options )
124117 return https_fn .Response (status = 200 , response = f"Enqueued { BACKUP_COUNT } tasks" )
125118# [END v2EnqueueTasks]
126119
0 commit comments