我有一个应用程序,存储用户数据在GCP数据存储。我做了一个cron作业,计划使用给定的这里指令在Datastore中导出数据。
现在,我想得到结果和完成时间,当这项工作失败。(不是cron,而是由cron移动的)
如何获得导出的结果细节?
发布于 2018-12-05 10:38:09
计划中的数据存储导出(和导入)可以是长期运行的操作,因此它们支持异步执行和进度监测。
基本上,当您启动该操作时,您将得到一个操作id:
例如,当您启动导出时,服务将创建一个长期运行的操作来跟踪导出状态。以下是导出开始时的输出: {“名称”:"projects/YOUR_PROJECT_ID/operations/ASAyMDAwOTEzBxp0bHVhZmVkBxJsYXJ0bmVjc3Utc2Jvai1uaW1kYRQKKhI",“元数据”:{ "@type":"type.googleapis.com/google.datastore.admin.v1.ExportEntitiesMetadata",“公用”:{ "startTime":"2017-05-25T23:54:39.583780Z“、"operationType":"EXPORT_ENTITIES”}、"progressEntities":{}、"progressBytes":{},"entityFilter":{ "namespaceIds":“}”,"outputUrlPrefix":"gs://YOUR_BUCKET_NAME“}} name字段的值是长期运行的操作的ID。
然后,您可以在projects.operations.get中使用操作管理API中的操作ID来获得它的完成时间和结果URL:
此示例输出显示最近完成的导出操作。工作完成后几天内可进入: {“操作”:[{“名称”:"projects/YOUR_PROJECT_ID/operations/ASAyMDAwOTEzBxp0bHVhZmVkBxJsYXJ0bmVjc3Utc2Jvai1uaW1kYRQKKhI",“元数据”:{ "@type":"type.googleapis.com/google.datastore.admin.v1.ExportEntitiesMetadata",“公用”:{ "startTime":"2017-12-05T23:01:39.583780Z","endTime":"2017-12-05T23:54:58.474750Z“、"operationType":"EXPORT_ENTITIES”}、"progressEntities":{ "workCompleted":"21933027“、"workEstimated":"21898182”}、"progressBytes":{ "workCompleted":"12421451292","workEstimated":"9759724245“},"entityFilter":{ "namespaceIds":”}“,"outputUrlPrefix":"gs://YOUR_BUCKET_NAME”},"done":true,“响应”:{ "@type":"type.googleapis.com/google.datastore.admin.v1.ExportEntitiesResponse","outputUrl":"gs://YOUR_BUCKET_NAME/2017-05-25T23:54:39_76544/2017-05-25T23:54:39_76544.overall_export_metadata“}
我不完全确定如何区分那些失败的工作,不过,我想在response字段中会显示出一些不同的东西。
https://stackoverflow.com/questions/53626929
复制相似问题