The invention provides a method and device for asynchronous processing tasks based on PHP, which includes constructing a specified number of sub-processes based on hypertext pre-processor PHP; comparing the number of received tasks to the size of the specified number when receiving the tasks to be processed, and obtaining a comparison result; advancing from a specified number of sub-processes according to the comparison results and based on the preset rules. In the process, a corresponding number of sub-processes are opened; the same number of sub-processes are acquired from the received tasks to be processed and assigned to the corresponding open sub-processes. In the open sub-processes, the pre-set callback processing function is used to asynchronously execute the assigned tasks. The embodiment of the present invention can flexibly control the number of opening sub-processes and select the corresponding sub-processes to process the tasks to be processed. The asynchronous and parallel execution of the tasks to be processed by the opened sub-processes can effectively improve the processing speed and efficiency of the tasks.
【技术实现步骤摘要】
一种基于PHP异步处理任务的方法及装置
本专利技术涉及计算机
,特别是涉及一种基于PHP异步处理任务的方法及装置。
技术介绍
目前,随着计算机技术以及大数据技术的不断发展,通常会遇到需要进行并发处理的问题,比如对于任务队列、消息队列等的处理。现有技术中,PHP(HypertextPreprocessor,超文本预处理器)本身是一个单进程的程序,然而,采用单进程处理数据、任务等过程中无法达到较高的处理效率,若单纯的使用PHP开启多进程,在进行并发处理数据的过程中,仍然会存在着很多的问题,往往还需要采用其他的语言来弥补这些问题。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的一种基于PHP异步处理任务的方法及装置。依据本专利技术的一方面,还提供了一种基于PHP异步处理任务的方法,包括:基于超文本预处理器PHP构建指定数量的多个子进程,所述子进程用于异步执行所述待处理任务;当接收到待处理任务时,比较接收到的待处理任务的数量与所述指定数量的大小,得到比较结果;依据所述比较结果且基于预设规则从所述指定数量的多个子进程中开启 ...
【技术保护点】
1.一种基于PHP异步处理任务的方法,包括:基于超文本预处理器PHP构建指定数量的多个子进程,所述子进程用于异步执行所述待处理任务;当接收到待处理任务时,比较接收到的待处理任务的数量与所述指定数量的大小,得到比较结果;依据所述比较结果且基于预设规则从所述指定数量的多个子进程中开启相应数量的子进程;在开启的子进程中异步执行接收到的待处理任务。
【技术特征摘要】
1.一种基于PHP异步处理任务的方法,包括:基于超文本预处理器PHP构建指定数量的多个子进程,所述子进程用于异步执行所述待处理任务;当接收到待处理任务时,比较接收到的待处理任务的数量与所述指定数量的大小,得到比较结果;依据所述比较结果且基于预设规则从所述指定数量的多个子进程中开启相应数量的子进程;在开启的子进程中异步执行接收到的待处理任务。2.根据权利要求1所述的方法,其中,依据所述比较结果且基于预设规则从所述指定数量的多个子进程中开启相应数量的子进程,包括:若所述比较结果为接收到的待处理任务的数量小于所述指定数量,则从所述指定数量的多个子进程中开启与任务数量相同数量的子进程;若所述比较结果为接收到的待处理任务的数量大于所述指定数量,则开启所述指定数量的子进程。3.根据权利要求2所述的方法,其中,在开启的子进程中异步执行接收到的待处理任务,包括:从接收到的待处理任务中调取与开启的子进程数量相同的待处理任务,将调取的待处理任务分别分配至相应的子进程中,其中,一个开启的子进程分配一个待处理任务;在开启的子进程中利用预先设置的回调处理函数异步执行所分配到的待处理任务。4.根据权利要求3所述的方法,其中,还包括:检测子进程中待处理任务的执行状态;当检测到至少一个子进程中的待处理任务执行完毕时,为所述至少一个子进程分配其他待处理任务。5.根据权利要求4所述的方法,其中,当检测到至少一个子进程中的待处理任务执行完毕时,为所述至少一个子进程分配其他待处理任务,包括:若接收到的待处理任务的数量小于所述指定数量,且开启了与任务数量相同数量的子进程,则当检测到至少一个子进程中的待处理任务执行完毕,且在接收到新的待处理任务时,将新的待处理任务分配至所述至少一个子进程中;若接收到的待处理任务的数量大于所述指定数量,且开启了所述指定数量的子进程,则当...
【专利技术属性】
技术研发人员:张久龙,
申请(专利权)人:北京奇虎科技有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。