免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1386 | 回复: 0

[使用帮助] OSA开源心得整理 ---- PYTHON批量操作篇 [复制链接]

论坛徽章:
0
发表于 2013-05-13 15:50 |显示全部楼层
OSA开源心得整理
                         ---- PYTHON批量操作篇

近期一直处于开发状态,有些天,从早上到晚上12点,一直在思考,编写代码,在开发过程中也积累到不少东西,写此文章,和大家分享一些开源的心得。
记得第一次写项目,是用PHP写购物导航站,那是属于第一个自己独立开发的项目,实现的功能很简单,普通的导航网站所具备的功能以外,加了一个ajax的网址搜索功能,可以根据首字母,网站标题,网站类型,网址内容等进行搜索,输入字符下面的输入框会马上出来结果。由于是第一个自己手动开发的项目,自然而然打心底有种成就感!
当然最早接触代码是在高中时候做的一个技术论坛,大家时候做了一个黑客技术交流社区,当时很单纯就是为了学习技术而做的社区!大概是06年的时候,那时候的DZ就己经挺强大了,做一个社区,和互联网上的另一个伙伴,为别人解答技术问题,忙的不亦乐呼!
OSA开源项目,OSAPUB社区的诞生,也是来自于对技术的追求,与分享知识的渴求!
OSA项目己经做了一年多了,如果说收获,除了自己投入的精力和时间,还有各种资源,享受到的乐趣以外,目前最大的收获,是结识了很多技术圈的内的朋友。
现在想想,能够支持OSA项目所有参与开发的成员坚持到现在的,是那一群不断关注OSA的朋友,你们的关注带给开源团队最大的动力。
这篇文章的主要目的,是为了分享近期开发批量操作部分的心得,咱们接下来聊聊OSA批量操作开发过程中遇到的一些有意思的事情吧。
首先感谢OSA开源团队产品策划,技术负责人,核心成员的大力支持,前期沟通进展很顺利,接口文档在第一时间能够发布,对后续的开发进展速度起到很关键的作用。咱们的产品策划,美工都是属于兼职型的,这里特别感谢他们为了项目,不辞辛劳的加班,无私的付出努力。
在开发批量操作过程中,遇到了一些事情,让我收获不少,第一件事情是思考模块化。
OSA将来肯定会支持插件,怎么样把逻辑和功能分离,让代码更加灵活,这是一个不得不思考的问题,路由,模块标准化,异步并发操作,返回结果处理等,结合OSA有控制端,受控端等等。

关于OSA批量操作部分路由的实现,OSA采用了与批量操作指令结合的模式,一个指令对应一个模块,通过OSA的路由函数,引导从PHP端接收到的指令到指定模块(详情参见osaBatch.py)。

接下要做的就是对模块进行标准化,OSA采用的是统一入口,每一个模块都由一个index函数进行集中引导,模块需要调用的功能,由其他函数实现,但最终返回到index函数,统一由index函数处理!

异步并发操作,OSA的批量操作都是异步进行的,PHP提交指令后,控制端只要接收到指令就会返回一个指定的字符串告诉PHP,我己经接到指令了,接下来的事情就交给PYTHON来干吧,结果我会写到数据库的。
大家或者会很感兴趣,接下来PYTHON怎么完成操作,又怎么样把结果返回给数据库呢?
接下来咱们得聊聊指令都包含一些什么东西了,由于是批量操作,肯定会有需要操作的目标服务器的IP地址了,并且还不止一个,可能是一个或者多个,才称得上批量。
需要操作些什么内容呢?OSA是在通过配置项来告诉最终需要执行什么样的内容的,比如我要发一个文件,需要有源文件,目标地址等这些配置项。
怎么样执行操作?传统的for循环+SHELL脚本用来发文件,效率是大家关疼的一个问题,OSA采用的是根据IP多线程并发与受控端发送指令或者是传输文件的,并发能力看CPU性能,OSA还可以让大家配置同时并发的线程数量,这样可以实现根据服务器性能来控制实际的并发数量,当然如果有需要的朋友,OSA可以单独为用户定制批量操作进程,采用多进程分发的模式充分发挥多核CPU的性能优势,基于目前项目的进度,OSA还没有经过大规模服务器批量操作的测试,代码会根据实际情况进一步优化和改进。

操作结果写入数据库,怎么样让大家更清楚的知道操作后的结果,这一点相信大家都很关心,由于OSA采用的是异步处理方式,结果会有所延迟是难勉的,比如分发一个10MB的文件,可能传输需要3S,这时候我们的结果就可能会延迟4秒左右。其中一秒中是结果返回控制端的网络延迟,OSA实现了从受控端传结果给控制端,并且可以根据指令类型执行指令操作,这将意味着OSA可以实现由受控端执行监控任务,并且返回结果,也意味着OSA可以实现分布式监控和报警任务,最终将结果统一入库。

感谢大家一路上的支持,感谢那些奋斗在一线的OSA开源开发团队,没有你们就没有OSA项目的发展壮大,6月份我们将继续开发和完善监控报警部分的代码,请大家继续关注!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP