一种信息调度发送方法和装置
技术领域
本发明涉及通信技术领域,具体涉及一种信息调度发送方法和装置。
背景技术
随着通信技术的发展,利用手机、计算机等设备中的信息发送系统发送信息成为一种常用的通信手段。对于手机、计算机等设备中的信息发送系统,其信息发送接口的负载量是一定的,因此在一定的时间内,上述信息发送系统可发送的信息量是有一定限制的,即其信息发送速度是一定的。
对于信息发送系统中所要发送的各类信息,其功能与作用会有所不同,所以相应地各类信息的发送速度也可以有所不同,以减轻信息发送系统中信息发送接口的负载量,从而提高信息发送效率。
但是,目前的信息发送方式中并不会考虑到信息发送速度、信息发送接口负载量等因素对信息发送效率的影响,从而容易导致信息发送接口的负载量变动较大,或者造成数据传送接口超负荷的情况,还会堵塞其他业务对信息的发送过程。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的信息调度发送方法和相应的信息调度发送装置。
依据本发明的一个方面,提供了一种信息调度发送方法,包括:
将发送任务放入消息队列中;
根据预置的信息发送速度,从消息队列中提取发送任务;所述信息发送速度包括在指定第一时间周期内执行发送任务的第一个数;
调用信息发送接口执行所述发送任务。
可选地,所述根据预置的信息发送速度,从消息队列中提取发送任务的步骤,包括:
判断在每个第一时间周期内,第一个数的内存空间中是否已全部写入已发送标识;其中,所述内存空间在每个第一时间周期结束时清空;所述已发送标识为每个发送任务执行完毕后写入;所述信息发送速度包括在指定第一时间周期内执行发送任务的第一个数;
如果在每个第一时间周期内,第一个数的内存空间中已全部写入已发送标识,则暂停从消息队列中提取下一条发送任务,直到当前第一时间周期结束,并在当前第一时间周期结束时清空所述内存空间;
如果在每个第一时间周期内,第一个数的内存空间中未全部写入已发送标识,则继续从消息队列中提取下一条发送任务,并在当前第一时间周期结束时清空所述内存空间。
可选地,所述根据预置的信息发送速度,从消息队列中提取发送任务的步骤包括:
判断第一个数的内存空间全部写入已发送标识所耗时间是否小于第一时间周期;其中所述已发送标识为每个发送任务执行完毕后写入;
如果第一个数的内存空间全部写入已发送标识所耗时间小于第一时间周期,则暂停从消息队列中提取下一条发送任务,直到所耗时间加上暂停时间达到第一时间周期,并清空所述内存空间;
如果第一个数的内存空间全部写入已发送标识所耗时间大于等于第一时间周期,则继续从消息队列中提取下一条发送任务,并清空所述内存空间。
可选地,在调用信息发送接口执行所述发送任务之后,还包括:
在当前发送任务执行完毕之后,按序在所述内存空间中为空的位置写入已发送标识。
可选地,在根据在每个第一时间周期内,第一个数的内存空间中,已写入已发送标识的内存空间的情况,从消息队列中提取发送任务的步骤之前,还包括:
以字节为单位,申请指定个数的内存空间。
可选地,在调用信息发送接口执行所述发送任务之后,还包括:
判断当前阶段执行发送任务的总个数是否达到预置的阈值;如果达到,则暂停预置的第二时间周期后,再进入根据预置的信息发送速度,从消息队列中提取发送任务的步骤。
可选地,发送任务中包含待发送信息和对应的信息接收号码。
可选地,调用信息发送接口执行所述发送任务的步骤包括:
调用信息发送接口,根据所述发送任务中包含待发送信息和对应的信息接收号码,将所述待发送信息发送至对应信息接收号码所在终端。
根据本发明的另一方面,提供了一种信息调度发送装置,包括:
排序模块,适于将发送任务放入消息队列中;
提取模块,适于根据预置的信息发送速度,从消息队列中提取发送任务;所述信息发送速度包括在指定第一时间周期内执行发送任务的第一个数;
发送模块,适于调用信息发送接口执行所述发送任务。
可选地,所述提取模块包括:
内存空间判断模块,适于判断在每个第一时间周期内,第一个数的内存空间中是否已全部写入已发送标识;其中,所述内存空间在每个第一时间周期结束时清空;所述已发送标识为每个发送任务执行完毕后写入;所述信息发送速度包括在指定第一时间周期内执行发送任务的第一个数;
如果在每个第一时间周期内,第一个数的内存空间中已全部写入已发送标识,则进入第一暂停模块,直到当前第一时间周期结束,并在当前第一时间周期结束时进入清除模块;
如果在每个第一时间周期内,第一个数的内存空间中未全部写入已发送标识,则进入发送任务提取模块,以从消息队列中提取下一条发送任务,并在当前第一时间周期结束时进入清除模块;
第一暂停模块,适于暂停从消息队列中提取发送任务;
发送任务提取模块,适于从信息对列中依次提取发送任务;
清除模块,适于清空所述内存空间。
可选地,所述提取模块包括:
时间判断模块,适于判断第一个数的内存空间全部写入已发送标识所耗时间是否小于第一时间周期;其中所述已发送标识为每个发送任务执行完毕后写入;
如果第一个数的内存空间全部写入已发送标识所耗时间小于第一时间周期,则进入第一暂停模块,直到所耗时间加上暂停时间达到第一时间周期,进入清除模块;
如果第一个数的内存空间全部写入已发送标识所耗时间大于等于第一时间周期,则进入清除模块,然后进入发送任务提取模块。
可选地,在发送模块之后,还包括:
发送标识写入模块,适于在当前发送任务执行完毕之后,按序在所述内存空间中为空的位置写入已发送标识,
可选地,在第一提取子模块之前,还包括:
内存空间申请模块,适于以字节为单位,申请指定个数的内存空间。
可选地,在发送模块之后,还包括:
阈值判断模块,适于判断当前阶段执行发送任务的总个数是否达到预置的阈值;如果达到,则进入第一暂停模块,经过预置的第二时间周期后,再进入提取模块。
可选地,发送任务中包含待发送信息和对应的信息接收号码。
可选地,所述发送模块包括:
信息发送子模块,适于调用信息发送接口,根据所述发送任务中包含待发送信息和对应的信息接收号码,将所述待发送信息发送至对应信息接收号码所在终端。
依据本发明的另外一个方面,还公开了一种信息调度发送设备,包括:
存储器和处理器;
所述存储器用于存储可执行代码;
所述处理器用于执行所述可执行代码,所述可执行代码执行包括以下步骤的方法:
将发送任务放入消息队列中;
根据预置的信息发送速度,从消息队列中提取发送任务;所述信息发送速度包括在指定第一时间周期内执行发送任务的第一个数;
调用信息发送接口执行所述发送任务。
根据本发明的一种信息调度发送方法和装置,可以根据预先设定的信息发送速度和信息发送时间执行发送任务,将信息发送至对应的信息接收号码所在的终端,其中预先设定的信息发送速度可以根据信息发送接口的负载量和本次发送信息的需求灵活设定,由此解决了信息发送接口的负载量变动较大,造成数据传送接口超负荷以及信息发送效率不稳定的问题,取得了提高了信息发送的效率及准确性的有益效果。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种信息调度发送方法的流程示意图;
图2示出了根据本发明一个实施例的一种信息调度发送方法的流程示意图;
图3示出了根据本发明一个实施例的一种信息调度发送方法的流程示意图;
图4示出了根据本发明一个实施例的一种信息调度发送方法的流程示意图;
图5示出了根据本发明一个实施例的一种信息调度发送装置的结构示意图;
图6示出了根据本发明一个实施例的一种信息调度发送装置的结构示意图;
图7示出了根据本发明一个实施例的一种信息调度发送装置的结构示意图;
图8示出了根据本发明一个实施例的一种信息调度发送装置的结构示意图。
图9示出了根据本发明一个实施例的一种信息调度发送设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
实施例一
参照图1,其示出了本申请一种信息调度发送方法的流程示意图,具体可以包括:
步骤S110,将发送任务放入消息队列中。
一般而言,发送任务包括发送内容、发送对象标识等,其中一般是以号码或IP地址等作为发送对象标识。在本发明实施例中,优选地,以待发送信息作为发送内容,以手机号码作为发送对象标识,则发送对象为手机,对本申请加以说明。
另外,本发明实施例中的消息队列是一种基于数据库的消息队列,比如基于SSDB(ScientificandStatistical,科学统计数据库)的消息队列,其是一种非内存的消息队列。将发送任务放入消息队列中,在使用过程中方便存取。
例如,某一网站利用本申请的信息调度发送方法向注册用户发送信息,首先生成发送任务,并将其依次放入消息队列中,如下:
发送任务a
发送任务b
发送任务c
……
对于上述各发送任务,所包含的待发送信息和手机号码分别例为,
发送任务a:手机号码为15874897866;待发送信息为,亲爱的张三,感谢您一直以来对本网站的支持,特送您50.00元现金抵用券:iriew1,有效期至2015年11月11日,赶紧登录抢购吧!【网站名称】
发送任务b:手机号码为15874897867;待发送信息为,亲爱的ID458892,感谢您一直以来对本网站的支持,特送您50.00元现金抵用券:iriew2,有效期至2015年11月11日,赶紧登录抢购吧!【网站名称】
发送任务c:手机号码为15874897868;待发送信息为,亲爱的李四,感谢您一直以来对本网站的支持,特送您50.00元现金抵用券:iriew3,有效期至2015年11月11日,赶紧登录抢购吧!【网站名称】
步骤S120,根据预置的信息发送速度,从消息队列中提取发送任务;所述信息发送速度包括在指定第一时间周期内执行发送任务的第一个数。
对于任何一个信息发送接口,其在固定时间段内所能发送的信息数量是有限制的,即该信息发送接口的负载量是有上限的,而且在同一时间段,可能存在与本次信息发送无关的其他多个发送任务正在发送。因此,本发明实施例根据所调用的信息发送接口的最大负载量,以及该信息发送接口当前时刻的负载情况,预置本次信息调度发送所用的信息发送速度。
一般而言,目前常用的信息发送速度是每秒内信息发送的个数,此时其计量单位为个/秒,当然也可以为每分钟或者每小时等其他时间周期内信息发送的个数,则此时的计量单位为个/分钟或个/小时等。优选地,本发明实施例中,采用的计量单位为个/秒,即上述的指定第一时间周期的单位为秒。另外,上述的指定第一时间周期可以为1秒,也可以为任意数量的秒数,但是出于对目前技术水平及调度发送信息初衷的考量,优选地,本发明实施例中的指定第一时间周期为1秒。
另外,上述的信息发送速度可以在当前步骤之前,以及当前步骤之前的任一步骤之前预置,也可以包含在本次信息调度发送指令中,对此本发明不加以限定。
例如,对于上述网站向注册用户发送信息,预置的信息发送速度为30个/秒,则其包括的指定第一时间周期为1秒,执行发送任务的第一个数为30个。
步骤S130,调用信息发送接口执行所述发送任务。
信息发送接口即为实现信息发送系统向发送对象发送信息的接口,其会根据发送任务中的发送对象标识,将发送任务中的发送内容发送至发送对象。
对于上述优选地发送任务中所包含的内容,所以优选地,本发明实施例中步骤S130包括:
步骤S131,调用信息发送接口,根据所述发送任务中包含待发送信息和对应的信息接收号码,将所述待发送信息发送至对应信息接收号码所在终端。
例如对于上述发送任务a、发送任务b和发送任务c,调用信息发送接口,根据发送任务中包含的待发送信息和手机号码,最终手机号码15874897866、15874897867和15874897868所在的手机的会接收到的信息分别为:
亲爱的张三,感谢您一直以来对本网站的支持,特送您50.00元现金抵用券:iriew1,有效期至2015年11月11日,赶紧登录抢购吧!【网站名称】
亲爱的ID458892,感谢您一直以来对本网站的支持,特送您50.00元现金抵用券:iriew2,有效期至2015年11月11日,赶紧登录抢购吧!【网站名称】
亲爱的李四,感谢您一直以来对本网站的支持,特送您50.00元现金抵用券:iriew3,有效期至2015年11月11日,赶紧登录抢购吧!【网站名称】
在本发明实施例中,根据预置的信息发送速度从消息队列中提取执行发送任务,然后调用信息发送接口执行发送任务,其中预置的信息发送速度可以根据信息发送接口的负载情况和灵活设定,由此解决了信息发送接口的负载量变动较大,造成数据传送接口超负荷,信息发送效率不稳定,还会堵塞其他业务对信息的发送过程的问题,取得了提高信息发送的效率的有益效果。
实施例二
参照图2,其示出了本申请一种信息调度发送方法的流程示意图,具体可以包括:
步骤S210,将发送任务放入消息队列中。
步骤S220,以字节为单位,申请指定个数的内存空间。
以字节为单位,申请指定个数的内存空间,其每个内存空间只能写0或1。在本发明实施例中,上述内存空间申请后,默认其值为0,表示未发送消息。
本发明实施例中,所申请的内存空间用以存放已发送标识,其数量与预置的信息发送速度有关。优选地,本发明实施例中,以信息发送速度中指定第一时间周期内执行发送任务的第一个数作为申请内存空间的指定个数。
例如,对于上述的网站向注册用户发送信息,预置的信息发送速度为30个/秒,则其包括的指定第一时间周期为1秒,执行发送任务的第一个数为30个,从而,所申请的内存空间个数为30。
另外,所申请的内存空间的地址可以是连续的,也可以是不连续的,对此本发明不加以限定。但是在信息调度发送过程中,上述内存空间是按照一定顺序被写入的。
另外,在本发明实施例中,考虑到内存空间中存放的已发送标识的大小,所以以字节为单位申请内存空间,但是在实际应用中,可以根据实际情况选择申请内存空间的单位,对此,本发明不加以限定。
步骤S230,判断在每个第一时间周期内,第一个数的内存空间中是否已全部写入已发送标识;其中,所述内存空间在每个第一时间周期结束时清空;所述已发送标识为每个发送任务执行完毕后写入;所述信息发送速度包括在指定第一时间周期内执行发送任务的第一个数。如果在每个第一时间周期内,第一个数的内存空间中已全部写入已发送标识,则进入步骤S240,直到当前第一时间周期结束,并在当前第一时间周期结束时进入步骤S250,然后进入步骤S260;如果在每个第一时间周期内,第一个数的内存空间中未全部写入已发送标识,则进入步骤S260,并在当前第一时间周期结束时进入步骤S250。
在本申请所述的信息调度发送过程中,从消息队列中提取一条发送任务并执行完毕,则会相应在一个内存空间中写入已发送标识。其中的已发送标识是用以写入上述内存空间中,以记录某一发送任务已执行完毕的标识,在本发明实施例中,某一发送任务已执行完毕包括信息发送成功,或者是调用信息发送接口超时等原因导致的信息发送失败等情况,都会在内存空间中写入已发送标识。为了不占用太多的内存,已发送用户标识可以尽可能的简单化,而且本次调度发送信息过程中的每个第一时间周期内所用的内存空间是固定的,所以优选地,本发明实施例中的已发送标识为1,在每个第一时间周期内,从执行当前第一时间周期的第一个发送任务开始,每执行完一个发送任务,则会相应地从所申请的第一个内存空间开始依次在内存空间中写入1,直到当前第一时间周期结束,清空所申请的所有内存空间,然后进入下一个第一时间周期。
另外,上述的在每个第一时间周期内,第一个数的内存空间中,已写入已发送标识的内存空间的情况可以分为以下两类:在每个第一时间周期内,第一个数的内存空间中已全部写入已发送标识;在每个第一时间周期内,第一个数的内存空间中未全部写入已发送标识。
步骤S240,暂停从消息队列中提取发送任务。
本发明实施例中的清空,是将上述内存空间中的写入的已发送标识清除并恢复至初始状态。
步骤S250,清空所述内存空间。
步骤S260,从消息队列中提取发送任务。
很明显,若在每个第一时间周期内,第一个数的内存空间中已全部写入已发送标识,此时没有多余的内存空间用以继续写入已发送标识,另外为了保持信息的发送速度,所以不再继续从消息队列中提取信息直到当前第一时间周期结束,并在当前第一时间周期结束时清空所述内存空间。另外,为了保证每个第一时间周期时间的完整性以及互相之间的连续性,若在每个第一时间周期结束时,第一个数的内存空间中未全部写入已发送标识,仍然清空所述内存空间,以进入下一个第一时间周期。
例如,对于上述的网站,第一时间周期为1秒,所申请的内存空间是30个,已发送标识为1。
若在1秒之内,30个内存空间中都已被写入1,则不再继续提取发送任务直到1秒时间结束,清空内存空间;
若在1秒之内,30个内存空间未被全部写入1,则继续提取发送任务并执行,直到1秒时间结束,清空内存空间;
而若在1秒时间结束时,30个内存空间仍未被全部写入1,此时若继续提取发送任务并执行,直到内存空间全部写入1,则会出现第一时间周期的不完整的情况,打乱第一时间周期的连续性,影响后续的循环过程。所以,在本发明实施例中,在1秒时间结束时,都不再继续提取发送任务,并且清空内存空间,不管30个内存空间是否已全部写入1。
步骤S270,调用信息发送接口执行所述发送任务。
步骤S280,在当前发送任务执行完毕之后,按序在所述内存空间中为空的位置写入已发送标识。
如上述,本申请中内存空间是按照一定的顺序被写入的,在每个第一时间周期内,对于已写入已发送标识的内容空间不可以重复写入。
在本发明实施例中,可利用调度器进程实现上述步骤S230至S250,该调度器进程可以分别创建调用线程,工作线程。其中,调用线程根据步骤S231的判断结果从消息队列中提取发送任务;工作线程调用信息发送接口执行上述发送任务,然后将上述已发送标识依次写入所申请的内存空间中。另外,一个调度器进程可以只提取执行一条发送任务并将已发送结果写入内存空间中,也可以重复上述步骤分别提取执行多条发送任务并将已发送结果写入内存空间中,对此,本发明不加以限定。
本实施例与实施例一类似步骤原理类似,在此不再赘叙。
本发明实施例中,同样根据预置的信息发送速度从消息队列中提取执行发送任务,然后调用信息发送接口执行发送任务,其中预置的信息发送速度可以根据信息发送接口的负载情况灵活设定,由此解决了信息发送接口的负载量变动较大,造成数据传送接口超负荷,信息发送效率不稳定,还会堵塞其他业务对信息的发送过程的问题,取得了提高信息发送的效率的有益效果。
另外,本发明实施例基于预置的信息发送速度中第一个数申请内存空间,用以写入已发送标识。判断在第一时间周期内,所申请的内存空间是否全部写入已发送标识,以决定是否继续提取发送任务并执行。能更好的控制信息发送速度不大于预置的信息发送速度,提高调度发送信息的效率。
实施例三
参照图3,其示出了本申请一种信息调度发送方法的流程示意图,具体可以包括:
步骤S310,将发送任务放入消息队列中。
步骤S320,以字节为单位,申请指定个数的内存空间。
步骤S330,判断第一个数的内存空间全部写入已发送标识所耗时间是否小于第一时间周期;其中所述已发送标识为每个发送任务执行完毕后写入;
如果第一个数的内存空间全部写入已发送标识所耗时间小于第一时间周期,则进入步骤S340,直到所耗时间加上暂停时间达到第一时间周期,进入步骤S350,然后进入步骤S360;
如果第一个数的内存空间全部写入已发送标识所耗时间大于等于第一时间周期,则进入步骤S350,然后进入步骤S360。
步骤S340,暂停从消息队列中提取发送任务。
步骤S350,清空所述内存空间。
步骤S360,从消息队列中提取发送任务。
本发明实施例中,比较第一个数的内存空间全部写入已发送标识所耗时间与第一时间周期的大小,即每当第一个数的内存空间全部填满时,则比较判断从上次清空内存空间后或者首次提取发送任务到当前时刻所耗时间与第一时间周期的大小。
若第一个数的内存空间全部写入已发送标识所耗时间小于第一时间周期,此时没有多余的内存空间用以继续写入已发送标识,另外为了保持信息的发送速度,所以不再继续从消息队列中提取信息直到当前第一时间周期结束,并在当前第一时间周期结束时清空所述内存空间;若第一个数的内存空间全部写入已发送标识所耗时间大于或等于第一时间周期,则直接清空所述内存空间,并且继续从消息队列中提取下一条发送任务。
例如,同样对于上述的网站,第一时间周期为1秒,所申请的内存空间是30个,已发送标识为1。
若此时30个内存空间中全部写入发送标识1,则比较从上一次清空内存空间后或者是首次从消息队列中提取发送任务到此时的时间段与第一时间周期1秒的大小,若上述时间段小于1秒,则暂停从消息队列中提取发送任务并执行,直到暂停的时间和上述时间段加总等于1秒,清空30个内存空间,并开始从消息队列中提取发送任务并执行;而若上述时间段大于或等于1秒,则直接清空30个内存空间,并继续从消息队列中提取发送任务并执行。
从上述判断过程可以看出,本发明实施例中从上一次清空内存空间之后到本次清除内存空间前的实际时间周期大于或等于第一时间周期,从而保证了实际信息发送速度不大于预置的信息发送速度,因此不会对信息发送接口造成过大的负载。
步骤S370,调用信息发送接口执行所述发送任务。
步骤S380,在当前发送任务执行完毕之后,按序在所述内存空间中为空的位置写入已发送标识。
本实施例与实施例一、二类似步骤原理类似,在此不再赘叙。
在本发明实施例中,同样根据预置的信息发送速度从消息队列中提取执行发送任务,然后调用信息发送接口执行发送任务,其中预置的信息发送速度可以根据信息发送接口的负载情况灵活设定,由此解决了信息发送接口的负载量变动较大,造成数据传送接口超负荷,信息发送效率不稳定,还会堵塞其他业务对信息的发送过程的问题,取得了提高信息发送的效率的有益效果。
另外,本发明实施例中从上一次清空内存空间之后到本次清除内存空间前的实际时间周期大于或等于第一时间周期,从而保证了实际信息发送速度不大于预置的信息发送速度,因此不会对信息发送接口造成过大的负载。
实施例四
参照图4,其示出了本申请一种信息调度发送方法的流程示意图,具体可以包括:
步骤S410,将发送任务放入消息队列中。
步骤S420,根据预置的信息发送速度,从消息队列中提取发送任务;所述信息发送速度包括在指定第一时间周期内执行发送任务的第一个数。
步骤S430,调用信息发送接口执行所述发送任务。
步骤S440,判断当前阶段执行发送任务的总个数是否达到预置的阈值;如果达到,则进入步骤S450,然后再进入步骤S420。
在本实施例中,很明显,若当前阶段执行发送任务的总个数未达到预置的阈值,则继续从消息队列中提取发送任务并执行。
步骤S450,暂停预置的第二时间周期的时间。
将发送任务放入消息队列以及从消息对列中提取发送任务,都是有一定速度限制的,为了防止步骤S420中根据预置的信息发送速度,从消息队列中提取发送任务的速度大于步骤S410将发送任务放入消息队列中的速度,从而导致提取的发送任务为空的情况出现,同时为了避免对消息对列的数据存取造成过大的压力,本发明实施例中会考虑消息队列的存取能力,预置阈值和第二时间周期,若当前阶段执行发送任务的总个数达到该阈值,则会暂定第二时间周期,以使当前及后续所要提取的消息队列空间不为空。
其中的阈值与第二时间周期可以在步骤S430之前的任一步骤中预置,也可以包含在信息调度发送指令中;另外,阈值与第二时间周期可以分开在不同的步骤中预置,也可以同一步骤中预置。但是一般而言,为了操作简单,优选地,会在同一步骤中预置上述信息。
本实施例与实施例一、二和三类似步骤原理类似,在此不再赘叙。
本发明实施例中,同样根据预置的信息发送速度从消息队列中提取执行发送任务,然后调用信息发送接口执行发送任务,其中预置的信息发送速度可以根据信息发送接口的负载情况灵活设定,由此解决了信息发送接口的负载量变动较大,造成数据传送接口超负荷,信息发送效率不稳定,还会堵塞其他业务对信息的发送过程的问题,取得了提高信息发送的效率的有益效果。
另外,本发明实施例中根据消息队列的存取能力预置了阈值和第二时间周期,若当前阶段执行发送任务的总个数达到预置的阈值,则会暂停预置的第二时间周期,从而可以避免从消息队列中所提取的发送任务为空的情况出现,保证了本申请的消息调度发送方法的有效性。
实施例五
参照图5,其示出了本申请一种信息调度发送装置的结构示意图,具体可以包括:
排序模块510,适于将发送任务放入消息队列中。
提取模块520,适于根据预置的信息发送速度,从消息队列中提取发送任务;所述信息发送速度包括在指定第一时间周期内执行发送任务的第一个数。
发送模块530,适于调用信息发送接口执行所述发送任务。在本实施例中,优选地,该发送模块包括:
信息发送子模块531,适于调用信息发送接口,根据所述发送任务中包含待发送信息和对应的信息接收号码,将所述待发送信息发送至对应信息接收号码所在终端。
在本发明实施例中,根据预置的信息发送速度从消息队列中提取执行发送任务,然后调用信息发送接口执行发送任务,其中预置的信息发送速度可以根据信息发送接口的负载情况和灵活设定,由此解决了信息发送接口的负载量变动较大,造成数据传送接口超负荷,信息发送效率不稳定,还会堵塞其他业务对信息的发送过程的问题,取得了提高信息发送的效率的有益效果。
实施例六
参照图6,其示出了本申请一种信息调度发送装置的结构示意图,具体可以包括:
排序模块610,适于将发送任务放入消息队列中。
内存空间申请模块620,适于以字节为单位,申请指定个数的内存空间。
提取模块630,适于根据预置的信息发送速度,从消息队列中提取发送任务;所述信息发送速度包括在指定第一时间周期内执行发送任务的第一个数。具体包括:
内存空间判断模块631,适于判断在每个第一时间周期内,第一个数的内存空间中是否已全部写入已发送标识;其中,所述内存空间在每个第一时间周期结束时清空;所述已发送标识为每个发送任务执行完毕后写入;所述信息发送速度包括在指定第一时间周期内执行发送任务的第一个数;如果在每个第一时间周期内,第一个数的内存空间中已全部写入已发送标识,则进入第一暂停模块632,直到当前第一时间周期结束,并在当前第一时间周期结束时进入清除模块634;如果在每个第一时间周期内,第一个数的内存空间中未全部写入已发送标识,则进入发送任务提取模块633,以从消息队列中提取下一条发送任务,并在当前第一时间周期结束时进入清除模块634;
第一暂停模块632,适于暂停从消息队列中提取发送任务。
发送任务提取模块633,适于从信息对列中依次提取发送任务。
清除模块634,适于清空所述内存空间。
发送模块640,适于调用信息发送接口执行所述发送任务。
发送标识写入模块650,适于在当前发送任务执行完毕之后,按序在所述内存空间中为空的位置写入已发送标识。
本发明实施例中,同样根据预置的信息发送速度从消息队列中提取执行发送任务,然后调用信息发送接口执行发送任务,其中预置的信息发送速度可以根据信息发送接口的负载情况灵活设定,由此解决了信息发送接口的负载量变动较大,造成数据传送接口超负荷,信息发送效率不稳定,还会堵塞其他业务对信息的发送过程的问题,取得了提高信息发送的效率的有益效果。
另外,本发明实施例基于预置的信息发送速度中第一个数申请内存空间,用以写入已发送标识。判断在第一时间周期内,所申请的内存空间是否全部写入已发送标识,以决定是否继续提取发送任务并执行。能更好的控制信息发送速度不大于预置的信息发送速度,提高调度发送信息的效率。
实施例7
参照图7,其示出了本申请一种信息调度发送装置的结构示意图,具体可以包括:
排序模块710,适于将发送任务放入消息队列中。
内存空间申请模块720,适于以字节为单位,申请指定个数的内存空间。
提取模块730,适于根据预置的信息发送速度,从消息队列中提取发送任务;所述信息发送速度包括在指定第一时间周期内执行发送任务的第一个数。具体包括:
时间判断模块731,适于判断第一个数的内存空间全部写入已发送标识所耗时间是否小于第一时间周期;其中所述已发送标识为每个发送任务执行完毕后写入。
如果第一个数的内存空间全部写入已发送标识所耗时间小于第一时间周期,则进入第一暂停模块732,直到所耗时间加上暂停时间达到第一时间周期,进入清除模块733,然后进入发送任务提取模块734;
如果第一个数的内存空间全部写入已发送标识所耗时间大于等于第一时间周期,则进入清除模块733,然后进入发送任务提取模块734。
第一暂停模块732,适于暂停从消息队列中提取发送任务。
清除模块733,适于清空所述内存空间。
发送任务提取模块734,适于从信息对列中依次提取发送任务。
发送模块740,适于调用信息发送接口执行所述发送任务。
发送标识写入模块750,适于在当前发送任务执行完毕之后,按序在所述内存空间中为空的位置写入已发送标识。
在本发明实施例中,同样根据预置的信息发送速度从消息队列中提取执行发送任务,然后调用信息发送接口执行发送任务,其中预置的信息发送速度可以根据信息发送接口的负载情况灵活设定,由此解决了信息发送接口的负载量变动较大,造成数据传送接口超负荷,信息发送效率不稳定,还会堵塞其他业务对信息的发送过程的问题,取得了提高信息发送的效率的有益效果。
另外,本发明实施例中从上一次清空内存空间之后到本次清除内存空间前的实际时间周期大于或等于第一时间周期,从而保证了实际信息发送速度不大于预置的信息发送速度,因此不会对信息发送接口造成过大的负载。
实施例八
参照图8,其示出了本申请一种信息调度发送装置的结构示意图,具体可以包括:
排序模块810,适于将发送任务放入消息队列中。
提取模块820,适于根据预置的信息发送速度,从消息队列中提取发送任务;所述信息发送速度包括在指定第一时间周期内执行发送任务的第一个数。
发送模块830,适于调用信息发送接口执行所述发送任务。
阈值判断模块840,判断当前阶段执行发送任务的总个数是否达到预置的阈值;如果达到,则进入第二暂停模块,经过预置的第二时间周期后,再进入提取模块820。
第二暂停模块850,适于暂停预置的第二时间周期。
本发明实施例中,同样根据预置的信息发送速度从消息队列中提取执行发送任务,然后调用信息发送接口执行发送任务,其中预置的信息发送速度可以根据信息发送接口的负载情况灵活设定,由此解决了信息发送接口的负载量变动较大,造成数据传送接口超负荷,信息发送效率不稳定,还会堵塞其他业务对信息的发送过程的问题,取得了提高信息发送的效率的有益效果。
另外,本发明实施例中根据消息队列的存取能力预置了阈值和第二时间周期,若当前阶段执行发送任务的总个数达到预置的阈值,则会暂停预置的第二时间周期,从而可以避免从消息队列中所提取的发送任务为空的情况出现,保证了本申请的消息调度发送方法的有效性。
实施例九
参照图9,其示出了本申请一种信息调度发送设备的结构示意图,所述信息调度发送设备900具体可以包括:
存储器910和处理器920;
所述存储器用于存储可执行代码;
所述处理器用于执行所述可执行代码,所述可执行代码执行包括以下步骤的方法:
将发送任务放入消息队列中;
根据预置的信息发送速度,从消息队列中提取发送任务;所述信息发送速度包括在指定第一时间周期内执行发送任务的第一个数;
调用信息发送接口执行所述发送任务。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的信息调度发送设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了A1、一种信息调度发送方法,包括:
将发送任务放入消息队列中;
根据预置的信息发送速度,从消息队列中提取发送任务;所述信息发送速度包括在指定第一时间周期内执行发送任务的第一个数;
调用信息发送接口执行所述发送任务。
A2、根据A1所述的方法,所述根据预置的信息发送速度,从消息队列中提取发送任务的步骤,包括:
判断在每个第一时间周期内,第一个数的内存空间中是否已全部写入已发送标识;其中,所述内存空间在每个第一时间周期结束时清空;所述已发送标识为每个发送任务执行完毕后写入;所述信息发送速度包括在指定第一时间周期内执行发送任务的第一个数;
如果在每个第一时间周期内,第一个数的内存空间中已全部写入已发送标识,则暂停从消息队列中提取下一条发送任务,直到当前第一时间周期结束,并在当前第一时间周期结束时清空所述内存空间;
如果在每个第一时间周期内,第一个数的内存空间中未全部写入已发送标识,则继续从消息队列中提取下一条发送任务,并在当前第一时间周期结束时清空所述内存空间。
A3、根据A1所述的方法,所述根据预置的信息发送速度,从消息队列中提取发送任务的步骤包括:
判断第一个数的内存空间全部写入已发送标识所耗时间是否小于第一时间周期;其中所述已发送标识为每个发送任务执行完毕后写入;
如果第一个数的内存空间全部写入已发送标识所耗时间小于第一时间周期,则暂停从消息队列中提取下一条发送任务,直到所耗时间加上暂停时间达到第一时间周期,并清空所述内存空间;
如果第一个数的内存空间全部写入已发送标识所耗时间大于等于第一时间周期,则继续从消息队列中提取下一条发送任务,并清空所述内存空间。
A4、根据A2-A3其中之一所述的方法,在调用信息发送接口执行所述发送任务之后,还包括:
在当前发送任务执行完毕之后,按序在所述内存空间中为空的位置写入已发送标识。
A5、根据A2-A3其中之一所述的方法,在根据在每个第一时间周期内,第一个数的内存空间中,已写入已发送标识的内存空间的情况,从消息队列中提取发送任务的步骤之前,还包括:
以字节为单位,申请指定个数的内存空间。
A6、根据A1所述的方法,在调用信息发送接口执行所述发送任务之后,还包括:
判断当前阶段执行发送任务的总个数是否达到预置的阈值;如果达到,则暂停预置的第二时间周期后,再进入根据预置的信息发送速度,从消息队列中提取发送任务的步骤。
A7、根据A1所述的方法,发送任务中包含待发送信息和对应的信息接收号码。
A8、根据A7所述的方法,调用信息发送接口执行所述发送任务的步骤包括:
调用信息发送接口,根据所述发送任务中包含待发送信息和对应的信息接收号码,将所述待发送信息发送至对应信息接收号码所在终端。
本发明还公开了B9、一种信息调度发送装置,包括:
排序模块,适于将发送任务放入消息队列中;
提取模块,适于根据预置的信息发送速度,从消息队列中提取发送任务;所述信息发送速度包括在指定第一时间周期内执行发送任务的第一个数;
发送模块,适于调用信息发送接口执行所述发送任务。
B10、根据B9所述的装置,所述提取模块包括:
内存空间判断模块,适于判断在每个第一时间周期内,第一个数的内存空间中是否已全部写入已发送标识;其中,所述内存空间在每个第一时间周期结束时清空;所述已发送标识为每个发送任务执行完毕后写入;所述信息发送速度包括在指定第一时间周期内执行发送任务的第一个数;
如果在每个第一时间周期内,第一个数的内存空间中已全部写入已发送标识,则进入第一暂停模块,直到当前第一时间周期结束,并在当前第一时间周期结束时进入清除模块;
如果在每个第一时间周期内,第一个数的内存空间中未全部写入已发送标识,则进入发送任务提取模块,以从消息队列中提取下一条发送任务,并在当前第一时间周期结束时进入清除模块;
第一暂停模块,适于暂停从消息队列中提取发送任务;
发送任务提取模块,适于从信息对列中依次提取发送任务;
清除模块,适于清空所述内存空间。
B11、根据B9所述的装置,所述提取模块包括:
时间判断模块,适于判断第一个数的内存空间全部写入已发送标识所耗时间是否小于第一时间周期;其中所述已发送标识为每个发送任务执行完毕后写入;
如果第一个数的内存空间全部写入已发送标识所耗时间小于第一时间周期,则进入第一暂停模块,直到所耗时间加上暂停时间达到第一时间周期,进入清除模块;
如果第一个数的内存空间全部写入已发送标识所耗时间大于等于第一时间周期,则进入清除模块,然后进入发送任务提取模块。
B12、根据B10-B11其中之一所述的装置,在发送模块之后,还包括:
发送标识写入模块,适于在当前发送任务执行完毕之后,按序在所述内存空间中为空的位置写入已发送标识,
B13、根据B10-B11其中之一所述的装置,在第一提取子模块之前,还包括:
内存空间申请模块,适于以字节为单位,申请指定个数的内存空间。
B14、根据B9所述的装置,在发送模块之后,还包括:
阈值判断模块,适于判断当前阶段执行发送任务的总个数是否达到预置的阈值;如果达到,则进入第一暂停模块,经过预置的第二时间周期后,再进入提取模块。
B15、根据B9所述的装置,发送任务中包含待发送信息和对应的信息接收号码。
B16、根据B15所述的装置,所述发送模块包括:
信息发送子模块,适于调用信息发送接口,根据所述发送任务中包含待发送信息和对应的信息接收号码,将所述待发送信息发送至对应信息接收号码所在终端。
本发明还公开了C17、一种信息调度发送设备,包括:
存储器和处理器;
所述存储器用于存储可执行代码;
所述处理器用于执行所述可执行代码,所述可执行代码执行包括以下步骤的方法:
将发送任务放入消息队列中;
根据预置的信息发送速度,从消息队列中提取发送任务;所述信息发送速度包括在指定第一时间周期内执行发送任务的第一个数;调用信息发送接口执行所述发送任务。