调用方法、调用装置、服务器、终端及计算机可读存储介质与流程

文档序号:16888017发布日期:2019-02-15 22:48阅读:110来源:国知局
调用方法、调用装置、服务器、终端及计算机可读存储介质与流程

本发明涉及通信技术领域,尤其涉及一种调用方法、调用装置、服务器、终端及计算机可读存储介质。



背景技术:

本地调度系统(例如:quartz,crontab,timer)在本地内存执行调度任务时,通过crtontab类似的表达式完成时间配置,通过指定执行的方法完成业务需求。

然而现有技术中,不能完成分布式系统的负载均衡,由于quartz,crontab等只能实现本地调用,所有业务都只能在添加调度的机器执行,在分布式系统中造成任务执行中单机负载太高,或者只能在分布式集群的所有机器添加调度,这样维护复杂度会更高。

可见,现有的调度方法存在不能均匀的调用客户端,由此造成负载不均衡的问题。



技术实现要素:

本发明实施例提供一种调用方法、调用装置、服务器、终端及存储介质,用以解决现有技术中存在的不能均匀的调用客户端,而造成的负载不均衡的问题。

第一方面,本发明实施例提供一种调用方法,所述方法包括以下步骤:

接收各客户端发送的延时任务;

存储接收到的所述延时任务,并监控所述延时任务的调用时机;

依据所述调用时机,调用所述客户端执行所述延时任务。

可选的,所述接收各客户端发送的延时任务,具体包括:接收各客户端发送的经过序列化处理后的延时任务,并对接收到的延时任务进行反序列化处理获得任务内容。

可选的,所述依据所述调用时机调用所述客户端执行所述延时任务,具体包括:依据所述调用时机,利用传输控制协议tcp长连接的方式或者利用企业服务总线esb向对应的客户端发送所述延时任务以及执行所述延时任务的通知。

第二方面,本发明实施例提供一种调用方法,包括以下步骤:

确定延时任务;

将所述延时任务发送给服务端;

在被所述服务端调用时,执行所述延时任务。

可选的,所述确定延时任务,具体包括:依据用户的访问记录及业务方的需求确定延时任务。

可选的,将所述延时任务发送给服务端,具体包括:对所述延时任务进行序列化处理,再将经过序列化处理后的任务发送给服务端。

可选的,所述在被所述服务端调用时,执行所述延时任务,具体包括:

接收服务端发送的延时任务及执行所述延时任务的通知;

根据所述通知,执行所述任务内容。

可选的,所述接收服务端发送的延时任务及执行所述延时任务的通知,具体包括:

接收服务端利用tcp长连接的方式发送的延时任务及执行所述延时任务的通知;

或者,接收服务端利用esb企业服务总线发送的延时任务及执行所述延时任务的通知。

第三方面,本发明实施例提供一种调用装置,包括:接收模块、监控模块和调用模块

所述接收模块,用于接收各客户端发送的延时任务;

所述监控模块,用于存储接收到的所述延时任务,并监控所述延时任务的调用时机;

所述调用模块,依据所述调用时机,调用所述客户端执行所述延时任务。

可选的,所述接收模块,在接收各客户端发送的延时任务时,具体用于:接收各客户端发送的经过序列化处理后的延时任务,并对接收到的延时任务进行反序列化处理获得任务内容。

可选的,所述调用模块,在依据所述调用时机,调用所述客户端执行所述延时任务时,具体用于:依据所述调用时机,利用传输控制协议tcp长连接的方式或者利用企业服务总线esb向对应的客户端发送所述延时任务以及执行所述延时任务的通知。

第四方面,本发明实施例提供一种调用装置,包括:确定模块,发送模块,执行模块;

所述确定模块,用于确定延时任务;

所述发送模块,用于将所述延时任务发送给服务端;

所述执行模块,用于在被所述服务端调用时,执行所述延时任务。

可选的,所述确定模块,在确定延时任务时,具体用于,依据用户的访问记录及业务方的需求确定延时任务。

可选的,所述发送模块,在将所述延时任务发送给服务端时,具体用于:对所述延时任务进行序列化处理,再将经过序列化处理后的任务发送给服务端。

可选的,所述执行模块,在被所述服务端调用时,执行所述延时任务时,具体用于:

接收服务端发送的延时任务及执行所述延时任务的通知;

根据所述通知,执行所述任务内容。

可选的,所述执行模块,在接收服务端发送的延时任务及执行所述延时任务的通知时,具体用于:接收服务端利用tcp长连接的方式发送的延时任务及执行所述延时任务的通知;

或者,接收服务端利用esb企业服务总线发送的延时任务及执行所述延时任务的通知。

第五方面,本发明实施例提供一种服务器,所述服务器包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如下方法的步骤:

接收各客户端发送的延时任务;

存储接收到的所述延时任务,并监控所述延时任务的调用时机;

依据所述调用时机,调用所述客户端执行所述延时任务。

第六方面,本发明实施例提供一种终端,所述终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如下方法步骤:

确定延时任务;

将所述延时任务发送给服务端;

在被所述服务端调用时,执行所述延时任务。

第七方面,本发明实施例提供一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如下方法的步骤:

接收各客户端发送的延时任务;

存储接收到的所述延时任务,并监控所述延时任务的调用时机;

依据所述调用时机,调用所述客户端执行所述延时任务。

或者,实现如下方法步骤:

确定延时任务;

将所述延时任务发送给服务端;

在被所述服务端调用时,执行所述延时任务。

本发明实施例通过将客户端中的延时任务保存在服务端中,利用服务端对延时任务的调用时机进行监控,依据调用时机,调用客户端执行延时任务,本发明实施中,服务端在调用客户端执行延时任务时,可以根据各客户端的任务情况进行调用,从而将延时任务均匀分配给各客户端,实现了服务端均匀调用客户端执行任务,解决了现有调度中负载不均衡的问题。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1为本发明第一实施例提供的一种调用方法的流程图;

图2为本发明第二实施例提供的一种调用方法的流程图;

图3为本发明第三实施例提供的一种调用方法的流程图;

图4为本发明第四实施例提供的一种调用方法的流程图;

图5为本发明第五实施例提供的一种调用装置的结构框图;

图6为本发明第六实施例提供的一种调用装置的结构框图;

图7为本发明第七实施例提供的一种服务器的框图;

图8为本发明第八实施例提供的一种终端的结构框图;

图9为本发明第十实施例提供的一种服务器的结构图;

图10为本发明第十实施例提供的一种服务器的简略类图;

图11为本发明第十实施例提供的一种客户端的结构图;

图12为本发明第十实施例提供的一种客户端的简略类图;

图13本发明第十实施例提供的一种调用系统的流程图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

本发明第一实施例提供一种调用方法,所述方法可以但不限于应用于服务端,如图1所示,包括以下具体步骤:

步骤s11,接收各客户端发送的延时任务;

本实施例中延时任务为依据用户的访问记录及业务方的需求确定任务。示例性的,具体的延时任务可以为,业务方对应的客户端在预定的时间向用户推送的租房页面/招聘页面或购物页面等;其中,预定时间的确定可以为用户访问过该相关页面后1小时或24小时等。例如:业务方想要实现推送租房页面,那么某用户访问过租房信息后,业务方则在24小时后向用户推送租房页面。具体延时推送的时间可以根据实际情况进行调整。

步骤s12,存储接收到的所述延时任务,并监控所述延时任务的调用时机;

本实施例中调用时机为向客户端发送延时任务以使客户端执行延时任务的时机,具体的调用时机可以根据业务方的需求进行调整,例如业务方要求在用户访问租房页面后,24小时之后再利用客户端向用户推送租房页面,则调用时机则为24小时,服务器接受到延时任务则开始进行计时,达到计时时间,则将延时任务发送给客户端并通知客户端执行任务。

步骤s13,依据所述调用时机,调用所述客户端执行所述延时任务。

本实施例中,本发明实施中,同一业务方下对应有若干个客户端,服务端在调用各客户端执行延时任务时,可以根据各客户端的任务量的情况进行调用,从而将延时任务均匀的分配给各客户端,实现了服务端均匀的调用客户端中的方法,解决了现有调度中负载不均衡的问题。

另外,本实施例还可以解决现有的本地调度方式每个调度只能完成一个任务的问题,具体的,现有的本地调度方式,比如想要每天早上9点执行任务a,需要使用quartz或者crontab等添加一个调度任务,过了几天想要执行任务a后在执行任务b,这时只有两种处理方式,一是,修改quartz或者crontab的配置增加一个调度任务;二是,修改任务执行的代码使之同时执行a和b,但是这两种方式都会造成维护成本的提升。而利用本实施例所述的调度方法,只需要在客户端中再添加一个任务b即可,通过将任务b保存在服务端利用服务端进行计时监控,当达到执行任务b的时间,则将任务b发送给客户端,以使客户端执行任务b,不需要为每个客户端增加配置任务或在各客户端中修改任务执行代码,因此维护成本低。

另外,本实施例还可以解决现有的本地调度方式不能动态增加删除调度的问题,具体的,现有的本地调度方式,比如将原本9点的任务调整到下午3点,只能通过修改quartz或者crontab的配置文件,如果集群每台机器都有配置,那就需要修改所有机器,操作繁琐,假如执行一周后效果不好重新调整任务到9点,还需要再次修改配置文件。而利用本实施例所述的调度方法,只需要在一个客户端中调整任务即可,再通过将调整后的任务保存在服务端中,利用服务端对任务进行监控,达到执行时间则将调整后的任务发送给各客户端,以使各客户端执行任务,因此不需要为每个客户端修改配置文件调整任务,因此增加或删除调度任务更加方便、快捷。

再者,本实施例还可以解决现有的本地调度方式不能针对用户个性化配置的问题,具体的,现有的本地调度方式是通过在本地中保存任务及任务执行的时间,比如早上9点的调度任务,那么所有的数据都只能9点执行,如果要求根据用户访问的时间延后24小时执行,quartz和crontab等方式只能每分钟配置一个调度任务,一个需求就要配置1140个任务,如果集群有10台服务器,想要负载均衡需要配置1140*10=11400个任务,操作复杂繁琐,维护成本巨大。而利用本实施例所述的调度方法,通过依据用户的访问记录及业务方的需求确定延时任务及执行时间,比如用户访问时间为上午8点,访问内容求职页面,业务方要求向用户推送页面的时间为24小时之后,则确定延时任务向用户推送求职页面,推送时间为第二天上午8点,因此本实施例中的调度方法更加个性化,不会只在固定的时间(例如,每天8点)向用户推送页面。

本发明第二实施例提供一种调用方法,本实施例所述方法相比于第一实施例,将着重阐述客户端与服务端之间的消息发送及解析机制,从而更详细的说明本发明所述调用方法的具体实施过程。具体的,如图2所示,本实施例所述方法包括以下具体步骤:

步骤s21,接收各客户端发送的经过序列化处理后的延时任务,并对接收到的延时任务进行反序列化处理获得任务内容及调用时机;

本步骤中,延时任务可以为:业务方对应的客户端需要向用户推送的租房页面/招聘页面/购物页面等;其中,调用时机为需要向用户推送页面的时机,例如用户访问过该相关页面后1小时或24小时等。具体的:若业务方想要实现推送租房页面,那么某用户访问过租房信息后,则延时任务内容为24小时后向用户推送租房页面,调用时机为用户访问该页面时的24小时后。具体延时推送的时间可以根据实际情况进行调整。

步骤s22,存储经过反序列化处理后获得的任务内容,并监控所述任务内容的调用时机。

步骤s23,依据所述调用时机,利用传输控制协议tcp长连接的方式或者利用企业服务总线esb向对应的客户端发送延时任务以及执行所述延时任务的通知。

本步骤中在向客户端发送延时任务之前还包括对延时任务进行序列化处理,然后再将延时任务发送给客户端。

本发明实施例中,同一业务方下对应有若干个客户端,服务端在调用各客户端执行延时任务时,可以根据各客户端的任务量的情况进行调用,从而将延时任务均匀的分配给各客户端,实现了服务端均匀的调用客户端执行延时任务,由此解决了现有的负载不均衡的问题。

本发明第三实施例提供一种调用方法,所述方法可以但不限于应用于客户端,结合图3,本实施例所述方法包括以下步骤:

步骤s31,确定延时任务;

本步骤在实施过程中具体包括:依据用户的访问记录及业务方的需求确定延时任务;具体的延时任务可以为,业务方对应的客户端在预定的时间向用户推送的租房页面/招聘页面/购物页面等;其中,预定时间的确定可以为用户访问过该相关页面后1小时或24小时等。例如:业务方想要实现推送租房页面,那么某用户访问过租房信息后,业务方则在24小时后向用户推送租房页面。具体延时推送的时间可以根据实际情况进行调整。

步骤s32,将所述延时任务发送给服务端;

本步骤在具体实施过程中,具体包括:将所述延时任务发送给服务端,具体包括:对所述延时任务进行序列化处理,再将经过序列化处理后的任务发送给服务端。

步骤s33,在被所述服务端调用时,执行所述延时任务。

本步骤在具体实施过程中,具体包括:接收服务端发送的延时任务及执行所述延时任务的通知;根据所述通知,执行所述任务内容。

本实施例中,通过将延时任务发送给服务端利用服务端中进行保存,并执行服务端的调用,由此解决了现有的负载不均衡的问题。由于客户端会将延时任务发送给服务端进行保存,因此若同一业务方对应有多个客户端,只需要在一个客户端中增加/删除延时任务,由此解决了每个调度只能完成一个业务、不能动态增加/删除调度的问题。

本发明第四个实施例提供一种调用方法,执行主体可以为客户端,结合图4,包括以下步骤:

步骤s41,依据用户的访问记录及业务方的需求确定延时任务。

本步骤中,业务方想要实现在用户访问过租房信息后,5小时向该用户推送租房页面;那么某用户访问在早上7点访问过租房信息后,则确定延时任务为第二天早上7点向该用户推送租房页面。具体延时推送的时间可以根据实际情况进行调整。

步骤s42,对所述延时任务进行序列化处理,再将经过序列化处理后的任务发送给服务端。

步骤s43,接收服务端发送的延时任务及执行所述延时任务的通知,根据所述通知,执行所述任务内容。

本步骤在实施过程中,具体可以为:接收服务端利用tcp长连接的方式发送的延时任务及执行所述延时任务的通知;或者,接收服务端利用esb企业服务总线发送的延时任务及执行所述延时任务的通知。

本实施例中,通过将延时任务发送给服务端利用服务端中进行保存,并执行服务端的调用,由此解决了现有的负载不均衡的问题。由于客户端会将延时任务发送给服务端进行保存,因此若同一业务方对应有多个客户端,只需要在一个客户端中增加/删除延时任务,由此解决了每个调度只能完成一个业务、不能动态增加/删除调度的问题,同时解决的现有技术中,由于是在客户端直接执行延时任务,因此不能针对用户个性化的问题。本发明实施例在修改/增加延时任务是更加方便,操作简单且维护成本低。

本发明第五实施例提供一种调用装置,结合图5,包括接收模块11、监控模块12和调用模块13;

所述接收模块11,用于接收各客户端发送的延时任务;

所述监控模块12,用于存储接收到的所述延时任务,并监控所述延时任务的调用时机;

所述调用模块13,依据所述调用时机,调用所述客户端执行所述延时任务。

本实施例中,接收模块11,在接收各客户端发送的延时任务时,具体用于:接收各客户端发送的经过序列化处理后的延时任务,并对接收到的延时任务进行反序列化处理获得任务内容。

调用模块13,在依据所述调用时机,调用所述客户端执行所述延时任务时,具体用于:依据所述调用时机,利用传输控制协议tcp长连接的方式或者利用企业服务总线esb向对应的客户端发送所述延时任务以及执行所述延时任务的通知。

本实施例中利用监控模块监控延时任务的执行时间,在任务到达执行时间后利用调用模块将任务发送给各客户端,实现了调用各客户的执行延时任务,通过将任务保存在监控模块,在增添或删除任务时不用对每个客户端都进行增添或删除处理,只需要在一个客户端进行增添或删除处理、并将增添或删除处理后的任务发送给监控模块,到达执行时间后监控模块则将该任务发送给各客户端,因此操作更加方便,提高了工作效率。

本发明第六实施例提供一种调用装置,结合图6,包括确定模块21,发送模块22,执行模块23;

所述确定模块21,用于确定延时任务;

所述发送模块22,用于将所述延时任务发送给服务端;

所述执行模块23,用于在被所述服务端调用时,执行所述延时任务。

本实施例中确定模块21,在确定延时任务时,具体用于,依据用户的访问记录及业务方的需求确定延时任务。

本实施例中发送模块22,在将所述延时任务发送给服务端时,具体用于:对所述延时任务进行序列化处理,再将经过序列化处理后的任务发送给服务端。

本实施例中执行模块23,在被所述服务端调用时,执行所述延时任务时,具体用于:接收服务端发送的延时任务及执行所述延时任务的通知;根据所述通知,执行所述任务内容。具体的,所述执行模块23,在接收服务端发送的延时任务及执行所述延时任务的通知时,具体用于:接收服务端利用tcp长连接的方式发送的根据所述计时监控结果反馈的经过序列化处理后延时任务、及执行所述延时任务的通知;或者,接收服务端利用esb企业服务总线发送的根据所述计时监控结果反馈的经过序列化处理后延时任务、及执行所述延时任务的通知。

本实施例中通过将延时任务发送给服务端,利用服务端监控延时任务,当达到执行时机,服务端则将延时任务反馈给调用模块,调用模块执行延时任务即可。本发明实施例在增添或删除任务时不用对每个客户端都进行增添或删除处理,只需要在一个客户端进行增添或删除处理、并将增添或删除处理后的任务发送给监控模块,到达执行时间后监控模块则将该任务发送给各客户端,因此操作更加方便,提高了工作效率。

本发明第七实施例提供一种服务器,结合图7,包括存储器1、处理器2及通信总线3;所述通信总线3用于实现处理器2和存储器1之间的连接通信;

具体的,本发明实施例中,处理器2可以是通用处理器,例如中央处理器(centralprocessingunit,cpu),还可以是数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(英文:applicationspecificintegratedcircuit,asic),或者是被配置成实施本发明实施例的一个或多个集成电路。其中,存储器用于存储所述处理器的可执行指令;

存储器1,用于存储程序代码,并将该程序代码传输给处理器。存储器可以包括易失性存储器(volatilememory),例如随机存取存储器(randomaccessmemory,ram);存储器也可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-onlymemory,rom)、快闪存储器(flashmemory)、硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd);存储器还可以包括上述种类的存储器的组合。

具体的,本发明实施例中,所述处理器用于执行存储器中存储的调用程序,所述调用程序被所述处理器执行时实现如下方法步骤:

步骤一、接收各客户端发送的延时任务;

步骤二、存储接收到的所述延时任务,并监控所述延时任务的调用时机;

步骤三、依据所述调用时机,调用所述客户端执行所述延时任务。

上述方法步骤的具体实施例过程可参见第一、二实施例,本实施例在此不再重复赘述。

本发明第八实施例提供一种终端,结合图8,所述终端包括:存储器1、处理器2及通信总线3;所述通信总线3用于实现处理器2和存储器1之间的连接通信;

具体的,本发明实施例中,处理器2可以是通用处理器,例如中央处理器(centralprocessingunit,cpu),还可以是数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(英文:applicationspecificintegratedcircuit,asic),或者是被配置成实施本发明实施例的一个或多个集成电路。其中,存储器用于存储所述处理器的可执行指令;

存储器1,用于存储程序代码,并将该程序代码传输给处理器。存储器可以包括易失性存储器(volatilememory),例如随机存取存储器(randomaccessmemory,ram);存储器也可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-onlymemory,rom)、快闪存储器(flashmemory)、硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd);存储器还可以包括上述种类的存储器的组合。

具体的,本发明实施例中,所述处理器用于执行存储器中存储的调用程序,所述调用程序被所述处理器执行时实现如下方法步骤:

步骤一、确定延时任务;

步骤二、将所述延时任务发送给服务端;

步骤三、在被所述服务端调用时,执行所述延时任务。

上述方法步骤的具体实施例过程可参见第三、四实施例,本实施例在此不再重复赘述。

本发明第九实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如下调用方法的步骤:

步骤一、接收各客户端发送的延时任务;

步骤二、存储接收到的所述延时任务,并监控所述延时任务的调用时机;

步骤三、依据所述调用时机,调用所述客户端执行所述延时任务。

或者,实现如下调用方法的步骤:

步骤一、确定延时任务;

步骤二、将所述延时任务发送给服务端;

步骤三、在被所述服务端调用时,执行所述延时任务。

上述方法步骤的具体实施例过程可参见第一实施例至第四实施例,本实施例在此不再重复赘述。

本发明第十实施例提供一种调用系统,包括客户端和服务器;具体的,结合图9,本实施例中,服务器dc-service包括:工作组件workercomponent、锁组件distributelockcomponent、远程服务组件scf(servicecommunicationfuwork)component、任务监控组件taskexecutorcomponent、消息通知组件notifiercomponent和配置组件configcomponent;

workercomponent,主要负责服务器系统的初始化和内部组件的实例化与相互协作,并管理整个服务的生命周期,其依赖于distributelockcomponent、notifiercomponent和taskexecutorcomponent;

distributelockcomponent,用于分布式锁实现,保证同一时刻只有一台主服务器dcservice(delaycall-service)正在运行;

scfcomponent:用于提供延时调用任务的提交与查询提供数据管理功能,包括任务的持久化与查询以及任务的状态更新操作;

taskexecutorcomponent:用于监控定时任务,并在任务到达执行时间时通知相应的客户端执行远程代码;

notifiercomponent:用于执行通知操作,将远程执行的任务发送给任务所对应的客户端;

configcomponent:用于初始化系统配置信息。

结合图10服务器的简略类图,服务器系统的主要接口是taskexecutor,负责任务监控和消息通知,分别的实现者是dc58mastertaskexecutor、tcpnotifier、esbnotifier。taskexecutor继承dc58mastertaskexecutor,dc58mastertaskexecutor依赖abstractdcworker,abstractdcworker依赖dcservice和distributedlock,abstractdcworker继承dc58worker并实现dcworker。

dc58mastertaskexecutor:taskexecutor的一个特定实现,主要职责是通过abstractdcworker主要工作组件从dcservice的数据库中查询最近一段时间的延时任务,当任务到达执行时间,将任务发布给dcworker处理。

dcworker:为服务器系统的主线程,负责处理系统内各个组件调用和执行流程;

esbnotifier:使用enterpriseservicebus企业服务总线将执行任务消息及任务发布给delaycall-client客户端;

tcpnotifier:使用transmissioncontrolprotocol传输控制协议长连接的方式将执行任务消息及任务发布delaycall-client客户端,使用netty框架实现;在具体实施过程中,可以根据实际需要选择使用esbnotifier或tcpnotifier:来进行任务的发布。

dcservice:主要负责系统配置和上下环境。

event:系统内部的事件机制。

workbuilder:work组件的创建入口,系统初始化时通过workbuilder创建dcworker传递配置和上线文并启动系统。

本实施例中,客户端包括消息组件messaging、序列化组件invocation、调用组件invocation和服务代理组件scfproxy;其调用关系如图11所示,具体的:

messaging:主要负责定时任务的内容接收与发送。

serialization:主要负责任务内容的序列化和反序列化确保目标方法能正确调用。

invocation:接收一个可执行的任务,并真正的执行任务。

scfproxy:一个scf服务代理,主要给用户提供提交延时任务的接口。

结合图12,客户端简略类图,包括延时调用客户端dcclient(delaycall-client),esbclient,tcpclient,taskinvoker和taskconverter;

dcclient:客户端接口,用于负责接收服务端发送的notifier消息,并调用messageconvertr反序列化后调用taskinvoker执行业务方逻辑;其是abstractdcclient特定的实现接口。

esbclient和tcpclient:负责处理具体的notifier通知,保证服务端消息的接收。

taskinvoker:负责调用业务方的逻辑并将业务方创建任务时的参数回传给业务方;<interface>taskinvoker为defaulttaskinvoker的实现接口。

任务转换taskconverter,其实现接口为<interface>messageconverter转换;消息messageconverter用于实现:客户端接收到消息后用来反序列化,保证可以正确的得到消息的原始内容。

结合图13,本实施例中调用系统的调用过程为:用户完成相应操作后由业务方根据自己的业务情况通过delaycall-client客户端添加定时回调任务,例如业务方a为租房业务,业务方b为招聘业务,业务方c为购物业务,与业务方对应的delaycall-client会将任务内容传递给delaycall-service服务端集群保存,delaycall-service会在内部等待任务达到可执行状态,然后将任务传递回与业务方对应delaycall-client并执行业务方任务。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通

过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1