常量
定义常量以区分 gRPC Response 状态。
常量 | 描述 |
---|---|
StatusOK | OK 表示成功。 |
StatusCanceled | Canceled 表示操作已取消(通常由调用方取消)。 |
StatusUnknown | 未知错误。 |
StatusInvalidArgument | InvalidArgument 表示客户端指定了无效参数。 |
StatusDeadlineExceeded | DeadlineExceeded 表示操作在完成前已过期。 |
StatusNotFound | NotFound 表示未找到请求的实体(例如文件或目录)。 |
StatusAlreadyExists | AlreadyExists 表示尝试创建实体失败,因为该实体已存在。 |
StatusPermissionDenied | PermissionDenied 表示调用方没有执行指定操作的权限。 |
StatusResourceExhausted | ResourceExhausted 表示某些资源已耗尽,可能是用户配额,或整个文件系统空间不足。 |
StatusFailedPrecondition | FailedPrecondition 表示操作被拒绝,因为系统未处于执行操作所需的状态。 |
StatusAborted | Aborted 表示操作已中止,通常由于并发问题,如序列器检查失败、事务中止等。 |
StatusOutOfRange | OutOfRange 表示操作尝试超出了有效范围。例如,查找或读取超出文件末尾。 |
StatusUnimplemented | Unimplemented 表示此服务中未实现或不支持/未启用该操作。 |
StatusInternal | 内部错误。表示底层系统预期的一些不变量已被破坏。 |
StatusUnavailable | Unavailable 表示服务当前不可用。这很可能是暂时性情况,可通过带退避重试来纠正。请注意,重试非幂等操作并非总是安全的。 |
StatusDataLoss | DataLoss 表示发生不可恢复的数据丢失或损坏。 |
StatusUnauthenticated | Unauthenticated 表示请求没有进行该操作所需的有效身份验证凭据。 |
示例
import grpc from 'k6/net/grpc';
import { check, sleep } from 'k6';
const client = new grpc.Client();
client.load(null, 'quickpizza.proto');
export default () => {
client.connect('grpc-quickpizza.grafana.com:443', {
// plaintext: false
});
const data = { ingredients: ['Cheese'], dough: 'Thick' };
const response = client.invoke('quickpizza.GRPC/RatePizza', data);
check(response, {
'status is OK': (r) => r && r.status === grpc.StatusOK,
});
client.close();
sleep(1);
};