首页 > 解决方案 > 删除 Google Cloud Tasks 时可以使用通配符吗?

问题描述

我对Google Cloud Tasks很陌生。

我想知道,有没有办法在删除任务时使用通配符?例如,如果我可能使用以下 ID 命名结构在队列中有 3 个任务......

  1. id-123-task-1
  2. id-123-task-2
  3. id-123-task-3

我可以简单地删除id-123-task-*以删除所有 3 个,还是每次都必须删除所有 3 个特定 ID?我想我正在尝试限制所需 API 调用的数量以删除与“id-123”相关的所有内容。

标签: google-cloud-tasks

解决方案


删除 Google Cloud Tasks 时可以使用通配符吗?

截至今天,Google Cloud Tasks 不支持通配符。我无法确认您是否可以传递 Google Cloud Task 的 ID,因为您提到id-123-task-*将删除所有任务。

尽管如此,如果您正在为特定目的创建任务,您可以为此类任务创建一个单独的队列。

不仅您会在组织任务方面获胜,而且当您想删除所有任务时,您只需从指定队列中清除所有任务,只需调用 1 次 API。

在这里您可以看到如何清除指定队列中的所有任务,以及如何删除任务和队列。

此外,我还附上了API 文档,以防您需要有关在 Cloud Tasks 中清除队列的更多信息。

如此处所述,请注意,如果您从队列中清除所有任务:

不要在清除队列后立即创建新任务。至少等待一秒钟。在时间上接近清除调用创建的任务也将被清除。

此外,如果您使用的是命名任务,如此处所述

您可以使用 name 参数将自己的名称分配给任务。但是,这会带来显着的性能开销,从而导致延迟增加,并可能增加与命名任务相关的错误率。如果任务是按顺序命名的,例如使用时间戳,这些成本可能会显着放大。

因此,如果您使用命名任务,文档建议对任务名称使用分布良好的前缀,例如内容的哈希。

如果您想限制 API 调用的数量,我认为这是最好的解决方案。

我希望它有所帮助。


推荐阅读