如何在 GCP 云任务中获取任务计数
How to get task count in GCP cloud task
是否有任何标准方法来获取队列的云任务计数?
我知道我们可以遍历 nextPageToken
并实现这一点。
这可以通过单个请求实现吗?
通过查看文档,QueueStats 似乎是获取任务计数的标准方法。
如@Sameer 评论中所述,cloudtask v2beta3 具有请求队列统计信息的功能:
public long geQueueDepth(String queuePath) {
long depth=-1;
try {
FieldMask.Builder fieldBuilder = FieldMask.newBuilder();
fieldBuilder.addPaths("stats");
com.google.cloud.tasks.v2beta3.GetQueueRequest queueRequest =
com.google.cloud.tasks.v2beta3.GetQueueRequest.newBuilder().setName(queuePath).setReadMask(fieldBuilder).build();;
com.google.cloud.tasks.v2beta3.Queue queue = cloudTasksClientV3.getQueue(queueRequest);
depth=queue.getStats().getTasksCount();
}catch (Exception e){
LOGGER.error("Error while getting queue depth =>{}",e.getMessage());
}
return depth;
}
是否有任何标准方法来获取队列的云任务计数?
我知道我们可以遍历 nextPageToken
并实现这一点。
这可以通过单个请求实现吗?
通过查看文档,QueueStats 似乎是获取任务计数的标准方法。
如@Sameer 评论中所述,cloudtask v2beta3 具有请求队列统计信息的功能:
public long geQueueDepth(String queuePath) {
long depth=-1;
try {
FieldMask.Builder fieldBuilder = FieldMask.newBuilder();
fieldBuilder.addPaths("stats");
com.google.cloud.tasks.v2beta3.GetQueueRequest queueRequest =
com.google.cloud.tasks.v2beta3.GetQueueRequest.newBuilder().setName(queuePath).setReadMask(fieldBuilder).build();;
com.google.cloud.tasks.v2beta3.Queue queue = cloudTasksClientV3.getQueue(queueRequest);
depth=queue.getStats().getTasksCount();
}catch (Exception e){
LOGGER.error("Error while getting queue depth =>{}",e.getMessage());
}
return depth;
}