如何通过GCP Storage Transfer Service Python SDK创建每周定时任务
GCP Storage Transfer Service 每周任务部署问题解决
当前使用GCP官方Python客户端库部署Storage Transfer Service任务时遇到以下情况:
- 当
schedule中的schedule_start_date与schedule_end_date参数相同时,任务会被创建为一次性任务; - 当两个参数不同时,任务默认变为每日任务,无法生成每周任务。
解决方法
要创建每周任务,需在schedule配置中显式添加repeat_interval参数,指定每周的重复间隔,覆盖默认的每日重复逻辑。
修改后的代码示例
transfer_job_request = storage_transfer.CreateTransferJobRequest({ 'transfer_job': { 'project_id': project_id, 'description': description, 'status': storage_transfer.TransferJob.Status.ENABLED, 'schedule': { 'schedule_start_date': start_time_schedule, # 首次执行日期,如{'day': 19, 'month': 4, 'year': 2023} 'schedule_end_date': end_time_schedule, # 最后执行截止日期,如{'day': 10, 'month': 5, 'year': 2023} 'repeat_interval': 'P7D', # ISO 8601格式,P7D表示每7天(每周)重复一次 'start_time_of_day': { # 每周执行的具体时间(可选,按需设置) 'hours': 10, 'minutes': 0, 'seconds': 0 } }, # 补充源、目标存储等必填配置 'transfer_spec': { 'gcs_data_source': {'bucket_name': 'source-bucket'}, 'gcs_data_sink': {'bucket_name': 'target-bucket'}, # 其他传输规则配置... } } }) # 执行任务创建请求 response = storage_transfer.create_transfer_job(request=transfer_job_request)
关键参数说明
repeat_interval:采用ISO 8601持续时间格式,P7D代表每7天重复一次(即每周),若需每2周执行可写为P14D。start_time_of_day:可选参数,用于指定每周任务的具体执行时间,未设置时默认在schedule_start_date的0点执行。schedule_start_date和schedule_end_date:分别定义任务的首次执行日期与最后执行截止日期,任务会在此时间段内按周重复执行。
内容的提问来源于stack exchange,提问作者Duojie
相关产品推荐
相关产品推荐

