.net 接口该如何实现某个请求优先处理?

问题描述

请教大家一个问题,接口该如何实现某个请求优先处理?比如说有一个接口的参数有会员账号、时间等,会员账号的类型有:高级、普通我想优先处理普通账号的请求,比如说有100个等待处理的请求中有60个普通账号的请求,有40个是高级账号的请求,我想优先处理普通账号的请求再去处理高级账号的请求。不知该如何存储、排序、再处理这些请求。请大家帮帮忙,给些思路。

解决方案

解决方案二:
publicclassSecurityQueue<T>{privatereadonlyList<T>_operations;privateobjectobjLock=newobject();publicSecurityQueue(){_operations=newList<T>();}///<summary>///将对象添加到CustomQueue的结尾处。///</summary>///<paramname="item"></param>publicvoidEnqueue(Titem){lock(objLock){_operations.Add(item);}}///<summary>///移除并返回位于CustomQueue开始处的对象。///</summary>///<returns></returns>publicTDequeue(){lock(objLock){if(_operations.Count>0){Titem=_operations[0];_operations.RemoveAt(0);returnitem;}returndefault(T);}}///<summary>///返回位于CustomQueue开始处的对象但不将其移除。///</summary>///<returns></returns>publicTPeek(){lock(objLock){if(_operations.Count>0){return_operations[0];}returndefault(T);}}///<summary>///包含从Queue复制的元素的新数组。///</summary>///<returns></returns>publicT[]ToArray(){lock(objLock){return_operations.ToArray();}}///<summary>///从Queue中移除所有对象。///</summary>publicvoidClear(){lock(objLock){_operations.Clear();}}///<summary>///确定某元素是否在Queue中。///</summary>///<paramname="item"></param>///<returns></returns>publicboolContains(Titem){lock(objLock){return_operations.Contains(item);}}///<summary>///确定某元素是否在Queue中。///</summary>///<paramname="item"></param>///<returns></returns>publicboolExists(Predicate<T>match){lock(objLock){return_operations.Exists(match);}}///<summary>///获取CustomQueue中包含的元素数。///</summary>publicintCount{get{return_operations.Count;}}///<summary>///插入到首位置///</summary>///<paramname="buffer"></param>publicvoidPush(Titem){lock(objLock){_operations.Insert(0,item);}}}上面是个队列程序定义全局变量弄个静太的就成publicstaticSecurityQueue<xxxx>queue=newSecurityQueue<xxxx>()然后在你的接口接收的地方if(xxx==普通)xxx.queue.Push(xxx)else//高级xxx.queue.Enqueue(xxx)//放到队尾

上面的Push方法要改进一下,就是普通的来了放到第一个高级前面就可以了不要一直放到最前面,这个自己用List的FindIndex改一下就可以了
解决方案三:

解决方案四:
比较好奇为何会有这样的需求个人觉得1L贴的代码只能解决一个优先队列的问题但是当你将别人的请求放在自己的队列里面再逐个处理这个不好办吧,就算你在某个时刻有100的并发LZ可以去看下asp.net的httphandler,那里的请求入口可以拦截请求,但是把请求放队列里面再处理可以实现吗?应该不可以吧!
解决方案五:
存到数据库里,或DataTable里,加个排序字段就可以啦
解决方案六:
引用4楼WM_JAWIN的回复:

存到数据库里,或DataTable里,加个排序字段就可以啦

+1
解决方案七:
友情帮顶!
解决方案八:
为什么要分先后?

时间: 2024-08-04 04:35:41

.net 接口该如何实现某个请求优先处理?的相关文章

web接口测试之GET与POST请求

关于HTTP协议,我考虑了一下觉得没必要再花一节内容来介绍,因为网上关于HTTP协议的介绍非常详细.本着以尽量避免介绍一空洞了概念与理论来介绍接口测试,我这里仍然会给出具体实例. 在此之前先简单的介绍一下基本概念:我们想要打开一个网站,首先是需要往浏览器的地址的URL输入框架中输入网地址.当我敲下回车后,通过HTTP协议,将网址传送到域名解析服务器,域名解析服务器根据网址找到对应的IP主机(系统服务器).这个过程叫request,即请求:当IP主机拿到请求后,将相应的资源返回给用户浏览器.这个过

python接口自动化1-发送get请求

前言 requests模块,也就是老污龟,为啥叫它老污龟呢,因为这个官网上的logo就是这只污龟,接下来就是学习它了.   一.环境安装 1.用pip安装requests模块 >>pip install requests   二.get请求 1.导入requests后,用get方法就能直接访问url地址,如:http://www.cnblogs.com/yoyoketang/,看起来是不是很酷 2.这里的r也就是response,请求后的返回值,可以调用response里的status_cod

java 调用 rest 接口 怎么写请求行的信息?

问题描述 java 调用 rest 接口 怎么写请求行的信息? Rest接口格式:每一个请求通常由三部分组成:请求行.请求报头.请求正文(可选). 请求样例: Post /services/ita/login HTTP/1.1 Host: https://: Accept:application/json;charset=UTF-8;Content-Type:application/json; charset=UTF-8 Accept-Language:zh_CN X-Auth-User:use

大叔也说Xamarin~Android篇~调用远程API接口,发POST请求

原文:大叔也说Xamarin~Android篇~调用远程API接口,发POST请求 Xamarin我们在上节已经教大家如何去部署它的环境了,今天来说一个实际的例子,使用android客户调用.net web api的一个接口,并发送POST请求,当服务端回到请求后做出响应,客户端android将响应的内容输出,并跳换到别一个Activity页面,在新视图上加载网页内容到webView控件上,整个流程结束! 一 在主页面上添加几个表单元素,账号,密码,登陆按钮,并在Activity类的OnCrea

接口-用C#如何定义 API 错误返回码

问题描述 用C#如何定义 API 错误返回码 就像微博接口一样,用户登录失败返回一个错误返回码 V2新版微博接口API将对每次失败请求,返回以下错误码中的一种: 10001 : 系统错误10002 : 服务端资源不可用10003 : 远程服务出错10005 : 该资源需要appkey拥有更高级的授权10006 : 缺少 source参数(appkey)10007 : 不支持的 MediaType (%s)10008 : 错误:参数错误,请参考API文档10009 : 任务过多,系统繁忙10010

接口回调怎么理解????

问题描述 接口回调怎么理解???? 接口回调要怎么理解??要怎么写,具体步骤是什么,求大神解释?? 解决方案 就是你调用了一个接口,然后那个接口又来吊你写的函数 解决方案二: 跟类的上转型对象使用一样,只是接口回调是针对接口而已,我只是渣渣,深一点的就不会了 解决方案三: 跟类的上转型对象使用一样,只是接口回调是针对接口而已,我只是渣渣,深一点的就不会了 解决方案四: 接口回调安卓开发接口回调经典案例网络请求什么是接口回调? 解决方案五: 其实和多态差不多一个道理 解决方案六: 按钮的监听事件都

请求转发和请求包含

1.Servlet 容器 编程中的容器我们可以理解为程序运行时需要的环境,那么Tomcat 就是Servlet 的运行环境,就是一个Servlet 容器.Servlet 容器的作用是负责处理客户请求,当Servlet 容器获取到用户请求后,调用某个Servlet,并把Servlet 的执行结果返回给用户.  Servlet 容器的工作流程: ● 当用户请求某个资源时,Servlet 容器使用ServletRequest 对象将用户的请求信息封装起来,然后调用 java Servlet API 中

jquery跨域请求示例分享

 这篇文章主要介绍了jquery跨域请求示例(jquery发送ajax请求),需要的朋友可以参考下 jQuery中常用getJSON来调用并获取远程的JSON字符串,将其转换为JSON对象,如果成功,则执行回调函数.原型如下:   jQuery.getJSON( url, [data], [callback] ) 跨域加载JSON数据.   url: 发送请求的地址 data : (可选) 待发送key/value参数 callback: (可选) 载入成功时的回调函数 主要用于客户端获取服务器

PHP编写RESTful接口_php实例

首先我们来认识下RESTful Restful是一种设计风格而不是标准,比如一个接口原本是这样的: http://www.test.com/user/view/id/1 表示获取id为1的用户信息,如果使用Restful风格,可以变成这样: http://www.test.com/user/1 可以很明显的看出这样做的好处: 1.更简洁的URL,对程序员友好 2.不暴露内部代码结构,更安全 那么,如何实现这个接口呢?首先,我们需要接收到/user/1部分. $path = $_SERVER['P