在 C 中创建 Gearman Worker

标签 c api gearman

我一直在尝试使用他们的 C API (libgearman) 来实现 Gearman worker。但是他们的 C API 文档很差而且不完整。尽管它与使用其他语言(例如 PHP)创建工作人员非常相似,但我仍然无法通过 *gearman_worker_add_function();*

在工作人员中注册函数

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

谢谢!

最佳答案

根据 this documentation :

typedef void*( gearman_worker_fn)(gearman_job_st *job, void *context, size_t *result_size, gearman_return_t *ret_ptr)

Definition at line 407 of file constants.h.

这是一个函数指针 typedef:基本上你只需要创建一个具有正确签名的函数(返回 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);

请注意,我只是传递了函数名称——这会降级为“函数指针”。

关于在 C 中创建 Gearman Worker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6697543/

相关文章:

无法添加系统 ("exit");在 C

c - 使用 fgets() 将字符放入数组会创建自动输入吗?

python - 类型错误:必须使用 'method name' 实例作为第一个参数调用未绑定(bind)方法 'class name'(改为使用 str 实例)

jquery - 跨域 jQuery .AJAX 问题

Jenkins 主故障转移场景

c - TCP connect() 总是通过

c - FreeRTOS xTaskNotifyWait 导致某些内部互斥断言失败

python - 将 Curl 命令转换为 python

java - Gearman - 计算统计数据