用户队列服务API
/// <summary>
/// 用户队列服务API
/// </summary>
public interface ICustomerQueueManager : IService
{
/// <summary>
/// 创建用户队列
/// </summary>
/// <param name="queueName">队列名称</param>
[OperationContract(Name = "CreateQueue")]
[WebGet(RequestFormat = WebMessageFormat.Json)]
void CreateQueue(string queueName);
/// <summary>
/// 删除队列
/// - 分强制删除和非强制删除两种模式
/// - 强制删除: 队列如果不为空也会被删除
/// - 非强制删除: 队列如果不为空, 这不会被删除并抛出异常
/// </summary>
/// <param name="queueName">队列名称</param>
/// <param name="forceDrop">true: 强制删除; false: 非强制删除</param>
[OperationContract(Name = "DropQueue")]
[WebGet(RequestFormat = WebMessageFormat.Json)]
void DropQueue(string queueName, bool forceDrop);
/// <summary>
/// 检查队列是否存在
/// </summary>
/// <param name="queueName">要检查的队列名称</param>
/// <returns>true: 存在, false: 不存在</returns>
[OperationContract(Name = "HasQueue")]
[WebGet(RequestFormat = WebMessageFormat.Json)]
bool HasQueue(string queueName);
/// <summary>
/// 将咨询用户加入队列
/// </summary>
/// <param name="queueName">队列名称</param>
/// <param name="record">咨询记录对象 - 如果将deskId设置为空则代表是新加入的客户.</param>
/// <param name="enqueueMode">入队列模式: 0 - 替换模式, 1 - 重新排队模式</param>
[OperationContract(Name = "Enqueue")]
[WebGet(RequestFormat = WebMessageFormat.Json)]
void Enqueue(string queueName, InquiryRecord record, int enqueueMode);
/// <summary>
/// 获取某个客户在队列中的位置
/// </summary>
/// <param name="queueName">队列名称</param>
/// <param name="customerUserId">客户ID</param>
/// <returns></returns>
int Position(string queueName, string customerUserId);
/// <summary>
/// 将用户拉出队列
/// </summary>
/// <param name="queueName">队列名称</param>
/// <param name="customerUserId">要拉出队列的客户ID, 如果为空则将第一个咨询客户拉出队列.</param>
/// <returns>被拉出队列的访客记录对象</returns>
[OperationContract(Name = "Dequeue")]
[WebGet(RequestFormat = WebMessageFormat.Json)]
InquiryRecord Dequeue(string queueName, string customerUserId);
/// <summary>
/// 将用户在不同队列间快速移动 (不提供comments)
/// </summary>
/// <param name="sourceQueueName">源队列</param>
/// <param name="targetQueueName">目标队列</param>
/// <param name="deskUserId">执行快速移动的客服用户ID</param>
/// <param name="customerUserId">要快速移动的客户ID, 如果为空则对源队列的第一个咨询客户进行移动.</param>
/// <param name="attachedComments">附加的备注信息</param>
/// <returns>被移动的访客记录对象</returns>
[OperationContract(Name = "QuickMove")]
[WebGet(RequestFormat = WebMessageFormat.Json)]
InquiryRecord QuickMove(string sourceQueueName, string targetQueueName, string deskUserId, string customerUserId, string attachedComments);
/// <summary>
/// 查看队列用户列表
/// </summary>
/// <param name="queueName">队列名称</param>
/// <param name="count">要查看的数量</param>
/// <returns>访客记录列表</returns>
[OperationContract(Name = "ViewQueue")]
[WebGet(RequestFormat = WebMessageFormat.Json)]
List<InquiryRecord> ViewQueue(string queueName, int count);
/// <summary>
/// 获取队列长度
/// </summary>
/// <param name="queueName">要查询的队列名称</param>
/// <returns>长度</returns>
[OperationContract(Name = "Count")]
[WebGet(RequestFormat = WebMessageFormat.Json)]
int Count(string queueName);
/// <summary>
/// 获取所有队列名称
/// </summary>
/// <returns>队列名称列表</returns>
[OperationContract(Name = "GetAllQueues")]
[WebGet(RequestFormat = WebMessageFormat.Json)]
List<string> GetAllQueues();
}
用户队列服务API的更多相关文章
- 如何设计提高服务API的安全性(二)API密钥方式详解
在上文已经讲述了基础介绍,这篇文章详细讲解API密钥方式. 利用何种加密方式呢? 经过上面加密算法的理解,单向加密不仅性能高,而且有压缩性,即长度一致,有效减少网络传输过程中的字节大小.适合我们这种调 ...
- 【阿里云产品公测】消息队列服务MQS java SDK 机器人应用初体验
[阿里云产品公测]消息队列服务MQS java SDK 机器人应用初体验 作者:阿里云用户啊里新人 初体验 之 测评环境 由于MQS支持外网访问,因此我在本地做了一些简单测试(可能有些业余),之后 ...
- day102:MoFang:后端完成对短信验证码的校验&基于celery完成异步短信发送&flask_jwt_extended&用户登录的API接口
目录 1.用户注册 1.后端完成对短信验证码的校验 2.基于celery实现短信异步发送 2.用户登录 1.jwt登录验证:flask_jwt_extended 2.服务端提供用户登录的API接口 1 ...
- NoSQL初探之人人都爱Redis:(3)使用Redis作为消息队列服务场景应用案例
一.消息队列场景简介 “消息”是在两台计算机间传送的数据单位.消息可以非常简单,例如只包含文本字符串:也可以更复杂,可能包含嵌入对象.消息被发送到队列中,“消息队列”是在消息的传输过程中保存消息的容器 ...
- Redis作为消息队列服务场景应用案例
NoSQL初探之人人都爱Redis:(3)使用Redis作为消息队列服务场景应用案例 一.消息队列场景简介 “消息”是在两台计算机间传送的数据单位.消息可以非常简单,例如只包含文本字符串:也可以更 ...
- 快速入门系列--WCF--06并发限流、可靠会话和队列服务
这部分将介绍一些相对深入的知识点,包括通过并发限流来保证服务的可用性,通过可靠会话机制保证会话信息的可靠性,通过队列服务来解耦客户端和服务端,提高系统的可服务数量并可以起到削峰的作用,最后还会对之前的 ...
- 【转】NoSQL初探之人人都爱Redis:(3)使用Redis作为消息队列服务场景应用案例
一.消息队列场景简介 “消息”是在两台计算机间传送的数据单位.消息可以非常简单,例如只包含文本字符串:也可以更复杂,可能包含嵌入对象.消息被发送到队列中,“消息队列”是在消息的传输过程中保存消息的容器 ...
- C# 调用百度地图Web服务API
最近公司项目中需要根据两个地点的交通路径和距离做一些数据推荐,为了程序的稳定和用户体验所以想从百度地图 API 采集数据保存到数据库中,经过一翻研究之后选定了百度地图 Web 服务 API 中的 Di ...
- (转载)Linux系统调用及用户编程接口(API)
(转载)http://www.farsight.com.cn/news/emb167.htm 1 Linux系统调用 所谓系统调用是指操作系统提供给用户程序调用的一组“特殊”接口,用户程序可以通过这组 ...
随机推荐
- 如何使用 Docker 来限制 CPU、内存和 IO等资源?
如何使用 Docker 来限制 CPU.内存和 IO等资源?http://www.sohu.com/a/165506573_609513
- window端编码到Linux允许脚本 笔记
昨天升级一个服务,发现没有现成的启动脚本.就随手写了一个,一运行发现不行.竟然报错说找不到文件,No such file or directory [nohup: cannot run command ...
- 自己用习惯的idea快捷键笔记
Ctrl + Space 自动完成(win10下冲突不能用,自己换成 Alt + \ ) 切换方法是菜单中依次打开 file -> settings -> keymap,搜索complet ...
- [转帖]oracle改版sql server问题点汇总
https://www.cnblogs.com/zhangdk/p/oracle_sqlserver.html 只记得 最开始的时候看过 没有具体的了解里面的特点 原作者总结的很好 留下来 以后说不定 ...
- bnu——GCD SUM (莫比乌斯反演)
题目:GCD SUM 题目链接:http://www.bnuoj.com/v3/problem_show.php?pid=39872 算法:莫比乌斯反演.优化 #include<stdio.h& ...
- Java——scoket通讯
Socket 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket. Socket是TCP/IP协议通信的抽象层,所以我们还需要了解TCP协议 传输层协议 TCP: ...
- Spark开发第一个程序
simon@simon-Lenovo-G400:~/.ssh$ touch authorized_keyssimon@simon-Lenovo-G400:~/.ssh$ cat id_rsa.pub ...
- Golang的channel使用以及并发同步技巧
在学习<The Go Programming Language>第八章并发单元的时候还是遭遇了不少问题,和值得总结思考和记录的地方. 做一个类似于unix du命令的工具.但是阉割了一些功 ...
- scrapy全站爬取拉勾网及CrawSpider介绍
一.指定模板创建爬虫文件 命令 创建成功后的模板,把http改为https 二.CrawSpider源码介绍 1.官网介绍: 这是用于抓取常规网站的最常用的蜘蛛,因为它通过定义一组规则为跟踪链接提供了 ...
- 老男孩python学习自修第八天【函数式编程】
1.可变参数,将传参自动汇总成列表 2.可变参数,将参数自动汇总成字典 实战如下: #!/usr/bin/env python # _*_ coding:UTF-8 _*_ def show(*arg ...