[发明专利]进程运行装置及方法有效
申请号: | 201210447701.0 | 申请日: | 2012-11-09 |
公开(公告)号: | CN102999387A | 公开(公告)日: | 2013-03-27 |
发明(设计)人: | 王博;吴凯 | 申请(专利权)人: | 北京奇虎科技有限公司;奇智软件(北京)有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 北京智汇东方知识产权代理事务所(普通合伙) 11391 | 代理人: | 范晓斌;康正德 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 进程 运行 装置 方法 | ||
技术领域
本发明涉及网络应用领域,具体涉及一种进程运行装置及方法。
背景技术
目前的网络应用(例如360桌面或浏览器)通常会面对数千万的在线用户,大量的用户应用的情况下,消息能否及时发送,就显得非常重要,直接影响用户体验。在线用户是放在一个队列中,需要一个守护进程(Daemon)不断去处理该用户队列,现有技术中采用了使用PHP(Hypertext Preprocessor,一种脚本语言,可以在命令行模式下执行)脚本的定时任务,这么一种模拟守护进程的方式来实现守护进程,取得不错的效果。
守护进程是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程最重要的特性是后台运行。其次,守护进程必须与其运行前的环境隔离开来。这些环境包括未关闭的文件描述符,控制终端,会话和进程组,工作目录以及文件创建掩模等。这些环境通常是守护进程从执行它的父进程(特别是提供用户使用界面的软件(shell))中继承下来的。最后,守护进程的启动方式有其特殊之处。它可以在Linux系统启动时从启动脚本/etc/rc.d中启动,可以由作业规划进程(crond)启动,还可以由用户终端(通常是shell)执行。
总之,除这些特殊性以外,守护进程与普通进程基本上没有什么区别。因此,编写守护进程实际上是把一个普通进程按照上述的守护进程的特性改造成为守护进程。
在设置周期性被执行的指令(crontab)计划任务中,写入PHP脚本,定为每分钟都会利用fork函数调度一个进程来执行PHP脚本。假设每个PHP脚本的最大执行时间是10分钟,超过10分钟就停止执行。在10分钟内,保证能有10个进程在执行,并且,一个PHP脚本执行时间到期后,其余PHP脚本还在继续执行,相当于该PHP脚本不间断的执行,也就模拟了守护进程的功能。
Linux中的nohup命令的功能就是不挂断的执行命令,同时nohup把程序的所有输出放到当前目录的nohup.out文件中,如果文件不可写,则放到<用户主目录>/nohup.out文件中。那么有了这个命令以后,PHP程序就可以被改写成shell脚本,使用循环来让脚本一直运行,那么不管终端窗口是否关闭,都能够让PHP脚本一直运行。当然,当PHP进程被杀或者操作系统重启的情况下,PHP脚本自然就会中止了。
但是,操作系统重启或守护进程可能导致脚本进程意外中断,此时如果不能即时重启,那么无法为用户提供脚本进程的处理,则网络应用提供的服务就会中断。另外,若守护进程长时间运转,导致脚本进程也长时间工作,若脚本进程的代码存在内存泄漏的情况,长时间运转会导致问题会逐渐放大,直到系统崩溃。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的进程运行装置和相应的进程运行方法。
依据本发明的一个方面,提供了一种进程运行装置,包括:定时器,配置为定制多个脚本进程的运行时长,其中,多个脚本进程并行处理;计时器,配置为对每个脚本进程的运行时间进行计时;触发器,配置为对于任意一个脚本进程,当计时器的计时时长达到该脚本进程的运行时长时,退出该计时器对应的脚本进程,触发新的脚本进程运行。
可选地,上述进程运行装置还包括:销毁器,配置为销毁退出的脚本进程。
可选地,计时器还配置为在操作系统重启或者守护进程意外中断导致脚本进程中断时,针对中断的脚本进程继续进行计时,直至到达运行时长。
可选地,上述进程运行装置还包括:处理器,配置为计时器的计时时长未达到运行时长时,判断当前用户队列中是否存在用户数据,若是,则对用户数据进行处理,若否,则待指定时长后对用户数据再次进行判断。
可选地,上述进程运行装置设置在Cron定时脚本任务中。
根据本发明的另一方面,提供了一种进程运行方法,包括:对每个脚本进程的运行时间进行计时,其中,多个脚本进程并行处理,且预设每个脚本进程的运行时长;当其中任意一个脚本进程的计时时长达到为该脚本进程设置的运行时长时,退出该脚本进程,并触发新的脚本进程运行。
可选的,退出当前脚本进程之后,上述进程运行方法还包括:销毁当前脚本进程。
可选的,上述进程运行方法还包括:在操作系统重启或者守护进程意外中断导致脚本进程中断时,继续对中断的每个脚本进程继续的计时操作;以及当任意一个脚本进程的计时时长达到运行时长时,该脚本进程退出该脚本进程,并触发新的脚本进程运行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司;奇智软件(北京)有限公司,未经北京奇虎科技有限公司;奇智软件(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210447701.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:电动汽车个体效益分析仪
- 下一篇:一种茶树花的生产方法