您的位置 首页 系统运维

SVN+Gearman构建异步式代码分布系统

这种方案是客户端每一次commit操作触动post-commit脚本执行,将代码update到本地后,再rsync到测试环境下。这存在潜在的问题,如磁盘IO,客户端提交时间(监控改变的目录,仅仅对改变的目录进行update操作比对整个项目进行update操作快)。

2.思路说明

将checkout/update操作转移到其他服务器上进行,比如测试环境下。客户端每一次commit操作仅仅是发送一次update操作命令,交由相关的服务器去完成你所要进行的操作。

可以采用SVN+Gearman来实现上述功能,解决面临的问题。

3.环境设置

a.SVN安装以及相关内容参见: http://www.ttlsa.com/html/category/os/web-application/svn

b.Gearman Server安装,PHP扩展以及相关内容参见: http://www.ttlsa.com/html/category/os/distributed-software-systems/distributed-processing-systems/gearman-distributed-processing-systems

c.Peal相关模块安装,如Gearman::Worker,Gearman::Client,JSON等等

4.实现步骤

a). Gearman Worker如下:(在测试服务器下运行)

b). Gearman Client如下:(每个项目hoods下)

注意:

a. Gearman Client是使用php来实现的。 Perl添加异步任务不成功,会一直等待worker响应。

b. 要添加异步任务。如果添加同步任务的话,会阻塞的。

热门文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注