在语聊源码中,任务处理系统通常包含三个部分,分别是任务API和可观测、任务分发和任务执行,其中任务分发承担着非常重要的职责,影响着系统的响应速度和用户的使用体验,在语聊源码开发中,任务分发系统需要具备的功能有哪些呢?
一、任务的可靠分发
当语聊源码中的任务被提交后,即便任务的执行可能会受到各种各样因素的影响,但任务分发系统也需要保证任务被成功调度并执行。
二、任务的定时/延时分发
在语聊源码中,不同任务需要的执行时间要求也是不同的,如果是即时任务,肯定是越快执行越好,但如果是定时任务,那任务分发系统就需要实现任务的定时分发,如果任务延长一段时间再执行也没有关系,就可以实现任务的延时分发。
三、任务去重
任务被重复执行会浪费语聊源码中的资源,甚至造成更严重的后果,所以在开发时,需要利用任务分发系统实现任务的去重,这样就能保证一个任务只被成功执行一次。
四、任务错误重试
语聊源码中的任务在执行中并不一定都是成功的,所以我们需要对失败的任务进行重试,这样才能保证任务高效、可靠地完成。在任务的重试中需要考虑以下几点:
1、在语聊源码开发时需要保证重试策略简单、易懂、易配置。
2、要考虑到下游任务执行系统的能力,不能一味地重试,避免增加下游系统压力。
在语聊源码中,错误的类型有两种,一种是可重试错误,该类错误经过重试是可以成功的,一种是不可重试错误,该类错误即便重试也没有意义,并不是成功。
五、任务的负载均衡
在分布式系统中,服务器节点多且请求处理能力不一,所以需要通过任务分发系统实现任务的负载均衡。任务负载均衡的实现需要依靠分发系统和执行子系统的相互配合。
六、任务按优先级分发
由于语聊源码中有多种业务场景,因此任务分发系统所需要分发的任务种类也就不同,为了保证系统的稳定运行,需要优先分发优先级高的任务。
除了以上的几种功能之外,在语聊源码中,任务分发系统还需要实现任务流控、任务的批量暂停和删除等功能。虽然语聊源码的开发看起来很简单,但其实并非如此,涉及的知识要点太多了。正所谓“学无止境”,只有不断学习才能不断优化和完善语聊源码。