用C语言创建Gearman Worker



我一直在尝试用他们的C API (libgearman)实现Gearman工作器。但是他们的C API文档很差而且不完整。虽然它非常类似于在其他语言(如PHP)中创建worker,但我仍然无法通过*gearman_worker_add_function();*

在worker中注册一个函数

具体来说,我无法找到如何创建一个*gearman_worker_fn*的对象。

谢谢!

根据本文档:

typepedef void*(gearman_worker_fn)(gearman_job_st *job, void* context,Size_t *result_size, gearman_return_t *ret_ptr)

文件constants.h.

第407行定义

这是一个函数指针类型:基本上你只需要创建一个具有正确签名的函数(返回void *,接受gearman_job_st *, void *, size_t *, gearman_return_t *),然后传递函数名。

的例子:

void *do_work(gearman_job_st *job, void *context, size_t *result_size, gearman_return_t *ret_ptr)
{
    do_something();
}
/* Later... */
    gearman_worker_add_function(worker, function_name, timeout, do_work, context);

注意,我只是传递了函数名——这将降级为"函数指针"。

相关内容

  • 没有找到相关文章

最新更新