用 C 创建 Gearman Worker

发布于 2024-11-24 02:00:53 字数 216 浏览 2 评论 0原文

我一直在尝试使用他们的 C API (libgearman) 来实现 Gearman 工作线程。但他们的 C API 文档很差而且不完整。虽然它与使用 PHP 等其他语言创建工作线程非常相似,但我仍然无法通过 *gearman_worker_add_function();* 在工作线程中注册函数;

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

谢谢!

I've been trying to implement a Gearman worker with their C API (libgearman). But their documentation for the C API is poor and not complete. Although its very similar to creating workers in other languages such as PHP, I am still unable to Register a function in the worker via *gearman_worker_add_function();*

To be specific, I am unable to find out how to create an object of *gearman_worker_fn* .

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

物价感观 2024-12-01 02:00:53

根据此文档

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

定义在文件constants.h的第407行。

这是一个函数指针 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);

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

According to 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.

This is a function pointer typedef: Basically you just need to create a function with the correct signature (returns void *, takes in gearman_job_st *, void *, size_t *, gearman_return_t *), and then pass in the function name.

Example:

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);

Notice that I just pass the function name-- this degrades to a "function pointer".

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文