它是分布式的程序调用框架,可完成跨语言的相互调用,适合在后台运行工作任务。最初是2005年perl版本,2008年发布C/C++版本。目前大部分源码都是(Gearmand服务job Server)C++,各个API实现有各种语言的版本。
这几篇源码分析从gearman worker分析开始着手,不扯淡了,先上一段源码看看:
稍微熟悉gearman的同学都清楚,gearman worker的前期初始化都比较简单,现在我们从下面开始,
GEARMAN_API gearman_return_t gearman_worker_work(gearman_worker_st *worker);
gearman_worker_work 主要操作4种类型的事件:
enum gearman_worker_universal_t {
GEARMAN_WORKER_WORK_UNIVERSAL_GRAB_JOB,
GEARMAN_WORKER_WORK_UNIVERSAL_FUNCTION,
GEARMAN_WORKER_WORK_UNIVERSAL_COMPLETE,
GEARMAN_WORKER_WORK_UNIVERSAL_FAIL
};