由于最近工作需要,要涉及Gearman的Client和worker的开发工作,所以研究了一下环境搭建和Client、Worker的开发。
环境搭建工作就不多说了,网上资料很多,不管是部署在linux上(常规方式)还是通过cygwin方式部署到windows上,都是可行的。
linux方式部署安装步骤大家可以参考这个文章:
http://blog.chinaunix.net/uid-27177626-id-4325909.html
cygwin部署到windows上可是可行的,又需要可以参考这篇文章:
http://www.cnblogs.com/zhujinghui/p/4175650.html
下面切入正题:
在Gearman部署完成后,我突然发现,Gearman只有C驱动而且是linux下的。换句话说如果直接在windows下搞个C的Gearman Worker是不可行的。但是幸好windows下有C#驱动,因此对于不熟悉linux开发的C++程序员,或者当前项目主要代码都在win下,linux不方便复用,需要工作量的朋友,可以直接借鉴下面代码。
Gearman C#驱动下载地址,驱动源码和示例都有,需要dll文件的可以自己编译:http://download.youkuaiyun.com/detail/huozhouhftze/8891971
下面Worker是通过托管C++来调用Gearman C#驱动实现功能的。代码是C#驱动的一个Demo,我删除掉了一个异步处理反转字符串演示接口,将C#语法改成了托管C++代码,并且已经和C#的Client Demo程序联调通过测试。
#include "stdafx.h"
using namespace System;
#using "