当线索进入数据库以后,一般都是根据业务的实际情况进行分配。可以按组或者人员轮分以及比例随机。 当根据在线客服状况进行分配时需要维护一个客服在线状态。最直接的方法是程序直接访问数据库,生成一个最后一个在线时间类似http的轮训访问。一般200左右的在线量是没有问题的,当人数进一步增加时对数据访问的开销是比较大的。这时候需要一个缓存池,客户端通过缓存池来隔离客户端和数据的客服列表。 结构图 当线索少的时候为了提高转化,一般会限制新人的对话量。需要在程序里进一步判断在线客服的对话条件。基本上中小公司完全够用。 以下是C的代码varisNotExistsstring。IsNullOrEmpty(lastKefu)!kfOnline。Any(。Account。IsEqual(lastKefu));sbLogInfo。Append(【平均分配】上一条客服:)。Append(lastKefu)。Append(不存在)。Append(isNotExists)。AppendLine()。Append(在线客服数)。Append(kfOnline。Count)。AppendLine();foreach(TAccountPersonalpinkfOnline){sbLogInfo。Append()。Append(p。Account)。Append(,)。Append(p。UserName)。AppendLine();}kfOnline1isNotExists?kfOnline〔FDL。Library。Numeric。RandomNumber。Between(0,kfOnline。Count1)〕:GetListNextValueTAccountPersonal(kfOnline,kfOnline〔〕。Account,lastKefu);