当前位置: 首页 > news >正文

企业网站建设需要哪些设备网站风格指的是什么

企业网站建设需要哪些设备,网站风格指的是什么,自然堂网站建设平台分析,如何知道网站是否备案过一、截止时间概述 截止时间功能让 gRPC 客户端可以指定等待调用完成的时间。 超过截止时间时#xff0c;将取消调用。 设定一个截止时间非常重要#xff0c;因为它将提供调用可运行的最长时间。它能阻止异常运行的服务持续运行并耗尽服务器资源。截止时间对于构建可靠应用非…一、截止时间概述 截止时间功能让 gRPC 客户端可以指定等待调用完成的时间。 超过截止时间时将取消调用。 设定一个截止时间非常重要因为它将提供调用可运行的最长时间。它能阻止异常运行的服务持续运行并耗尽服务器资源。截止时间对于构建可靠应用非常有效应该进行配置。 二、取消概述 客户端主动取消不再需要长期运行的调用线程故障自动取消超出截止时间触发取消操作 三、实战案例 首先准备一个grpc后端服务其次准备一个webapi服务作为客户端方便HttpContext传递客户端工厂配置EnableCallContextPropagation 用于上下文传递截止时间传递CancellationTokenSource话不多说通过代码可以更好的看出程序的运行轨迹 // 引入proto文件 // 公共messages.protosyntax proto3;option csharp_namespace GrpcProject;package grpc.serviceing;// 请求体 message ServerRequest{string name 1;double height 2;int32 age 3;bool flag 4;float x 5;float y 6;float z 7;repeated string departments 8; }message ServerFileRequest{bytes fileBytes 1; }// 响应体 message ServerResponse{bool result 1; }// 服务dollar.proto文件syntax proto3;import google/protobuf/empty.proto; import Protos/messages.proto;option csharp_namespace GrpcProject;package grpc.serviceing;service DollarRpc{rpc ServerOne (ServerRequest) returns (ServerResponse);rpc ServerTwo (ServerRequest) returns (google.protobuf.Empty); } 服务端接口实现 public class DollarService : DollarRpc.DollarRpcBase{public override async TaskServerResponse ServerOne(ServerRequest request, ServerCallContext context){await Console.Out.WriteLineAsync(-------------------------ServerOne------------------------------\r\n);await Task.Delay(TimeSpan.FromSeconds(8), context.CancellationToken);foreach (var prop in request.GetType().GetProperties()){await Console.Out.WriteLineAsync($property name{prop.Name}value{prop.GetValue(request)});}return GetResponse();}public override async TaskEmpty ServerTwo(ServerRequest request, ServerCallContext context){await Console.Out.WriteLineAsync(-------------------------ServerTwo------------------------------\r\n);await Task.Delay(TimeSpan.FromSeconds(8), context.CancellationToken);foreach (var prop in request.GetType().GetProperties()){await Console.Out.WriteLineAsync($property name{prop.Name}value{prop.GetValue(request)});}return new();}private ServerResponse GetResponse() new() { Result true };} 客户端实现重点 program注入客户端工厂并启用截止时间配置增加拦截器统一设定超时时间调用查看结果 // program.csbuilder.Services.AddGrpcClientDollarRpc.DollarRpcClient(options {options.Address new Uri(https://localhost:7188); }).EnableCallContextPropagation();//拦截器过滤截止时间[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple false, Inherited false)]public class GrpcFilterAttribute : Attribute, IActionFilter{public void OnActionExecuted(ActionExecutedContext context){}public void OnActionExecuting(ActionExecutingContext context){CancellationTokenSource tokenSource new();GrpcServerCallContextFeature callContext new(DateTime.UtcNow.AddSeconds(5), tokenSource.Token);context.HttpContext.Features.SetIServerCallContextFeature(callContext);}}public class GrpcServerCallContextFeature : ServerCallContext, IServerCallContextFeature{/// summary/// 构造/// /summary/// param namedeadline/param/// param namecancellationToken/parampublic GrpcServerCallContextFeature(DateTime deadline, CancellationToken cancellationToken){DeadlineCore deadline;CancellationTokenCore cancellationToken;AuthContextCore new AuthContext(null, new Dictionarystring, ListAuthProperty());}public ServerCallContext ServerCallContext this;protected override string MethodCore { get; }protected override string HostCore { get; }protected override string PeerCore { get; }protected override DateTime DeadlineCore { get; }protected override Metadata RequestHeadersCore { get; }protected override CancellationToken CancellationTokenCore { get; }protected override Metadata ResponseTrailersCore { get; }protected override Status StatusCore { get; set; }protected override WriteOptions? WriteOptionsCore { get; set; }protected override AuthContext AuthContextCore { get; }protected override ContextPropagationToken CreatePropagationTokenCore(ContextPropagationOptions? options){return base.CreatePropagationToken(options);}protected override Task WriteResponseHeadersAsyncCore(Metadata responseHeaders){throw new NotImplementedException();}} //调用 // 在相应的类上打上标记 [GrpcFilter][Route(api/[controller])][ApiController][GrpcFilter] // 设定截止时间过滤public class GrpcTestController : ControllerBase{private readonly DollarRpc.DollarRpcClient _dollarRpcClient;public GrpcTestController(DollarRpc.DollarRpcClient dollarRpcClient) _dollarRpcClient dollarRpcClient;[HttpGet(one)]public async Taskstring GetOneResult(){ServerRequest request new ServerRequest(){Departments {one,two,three,four,five},Age 10,Flag true,Height 10,Name zhangsan,X 10F,Y 11F,Z 12F};try{var response await _dollarRpcClient.ServerOneAsync(request);if (response.Result){return Success;}return Fail;}catch (RpcException ex) when (ex.StatusCode Grpc.Core.StatusCode.DeadlineExceeded){return dealine timeout.;}catch (RpcException ex){return ($NoResult{ex.Message});}}[HttpGet(two)]public async Taskstring GetTwoResult(){ServerRequest request new ServerRequest(){Departments {one,two,three,four,five},Age 10,Flag true,Height 10,Name zhangsan,X 10F,Y 11F,Z 12F};try{var response await _dollarRpcClient.ServerTwoAsync(request);return Success;}catch (RpcException ex) when (ex.StatusCode Grpc.Core.StatusCode.DeadlineExceeded){return dealine timeout.;}catch (RpcException ex){return ($NoResult{ex.Message});}}} 四、查看执行结果 服务端One 客户端One swagger: 另一个Two效果类似。同时服务端任务取消错误也在截图上有显示。 五、源码地址 链接https://pan.baidu.com/s/1vleChFc3F6ILs-5ad8xQCA  提取码mud0
http://www.dnsts.com.cn/news/41509.html

相关文章:

  • 网站域名注销wordpress主题英文改中文
  • 互联网域名交易中心抖音优化排名
  • 气象网站建设普陀网站建设比较实惠
  • 绍兴的网站建设公司门窗专业设计网站
  • 桐梓网站开发常州被约谈企业主公司发讣告
  • 免费的logo设计网站广告联盟没网站可以做吗
  • 视频网站开发方法简单的html网页制作模板免费
  • 泉州建站公司模板网站的企业特色展示
  • 做一个付费网站多少钱网址大全免费网站
  • 什么网站发布任务有人做广州外包公司都有哪些
  • 企业网站建设解决方案window优化大师
  • 上海网站排名优化费用flash企业网站模板php
  • 小企业网站建设怎样可以快速在哪个网站找水利工地做
  • 做婚庆的网站有哪些织梦模板网站好优化吗
  • 网站定制化什么意思润滑油网站建设
  • 个人网站设计模版html做网站设计怎么提升
  • 网架公司安全员需要什么证书佛山seo教程
  • m开头的手机网站怎么做快乐麻花网站源码
  • 南京做机床的公司网站网站建设的比较合理的流程
  • 好的网站具备的条件德州做网站建设的公司哪家好
  • 郑州网站推广公司排名电子商务网站开发背景和意义
  • 怎么样注册一个网站wordpress全站使用cdn
  • 陕西咸阳做网站的公司有做学历在网站能查的到的
  • 如何在网站做宣传网站建设主要课程
  • 绵阳学校网站建设网站的pdf预览是怎么做的
  • 自己做采集电影网站俄罗斯军事最新消息
  • 企业网站是否可以做淘宝客自己做一网站_多做宣传.
  • 上海嘉定建设局网站简单的dw制作网页步骤
  • 做网站交接什么时需要交接wordpress 总页码数
  • 个人网站建设规划wordpress的主题是什么意思