gearman_worker_st.rst 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. ==========================
  2. Worker (gearman_worker_st)
  3. ==========================
  4. --------
  5. SYNOPSIS
  6. --------
  7. #include <libgearman/gearman.h>
  8. .. c:type:: gearman_worker_st
  9. .. c:type:: gearman_worker_set_task_context_free_fn
  10. .. c:function:: int gearman_worker_timeout(gearman_worker_st *worker)
  11. .. c:function:: void gearman_worker_set_timeout(gearman_worker_st *worker, int timeout)
  12. .. c:function:: void *gearman_worker_context(const gearman_worker_st *worker)
  13. .. c:function:: void gearman_worker_set_context(gearman_worker_st *worker, void *context)
  14. .. c:function:: void gearman_worker_set_workload_malloc_fn(gearman_worker_st *worker, gearman_malloc_fn *function, void *context)
  15. .. c:function:: void gearman_worker_set_workload_free_fn(gearman_worker_st *worker, gearman_free_fn *function, void *context)
  16. .. c:function:: gearman_return_t gearman_worker_wait(gearman_worker_st *worker)
  17. .. c:function:: gearman_return_t gearman_worker_register(gearman_worker_st *worker, const char *function_name, uint32_t timeout)
  18. .. c:function:: gearman_return_t gearman_worker_unregister(gearman_worker_st *worker, const char *function_name)
  19. .. c:function:: gearman_return_t gearman_worker_unregister_all(gearman_worker_st *worker)
  20. .. c:function:: void gearman_job_free_all(gearman_worker_st *worker)
  21. .. c:function:: bool gearman_worker_function_exist(gearman_worker_st *worker, const char *function_name, size_t function_length)
  22. .. c:function:: gearman_return_t gearman_worker_work(gearman_worker_st *worker)
  23. .. c:function:: gearman_job_st *gearman_worker_grab_job(gearman_worker_st *worker, gearman_job_st *job, gearman_return_t *ret_ptr)
  24. Link with -lgearman
  25. -----------
  26. DESCRIPTION
  27. -----------
  28. :c:type:`gearman_worker_st` is used for worker communication with the server.
  29. :c:func:`gearman_worker_context` and :c:func:`gearman_worker_set_context` can be used to store an arbitrary object for the user.
  30. :c:func:`gearman_worker_set_task_context_free_fn` sets a trigger that will be called when a :c:type:`gearman_task_st` is released.
  31. :c:func:`gearman_worker_timeout` and :c:func:`gearman_worker_set_timeout` get and set the current timeout value, in milliseconds, for the worker.
  32. :c:func:`gearman_worker_function_exist` is used to determine if a given worker has a specific function.
  33. :c:func:`gearman_worker_work` have the worker execute against jobs until an error occurs.
  34. :c:func:`gearman_worker_grab_job` Takes a job from one of the job servers. It is the responsibility of the caller to free the job once they are done. This interface is used in testing, and is very rarely the correct interface to program against.
  35. Normally :manpage:`malloc(3)` and :manpage:`free(3)` are used for allocation and releasing workloads. :c:func:`gearman_worker_set_workload_malloc_fn` and :c:func:`gearman_worker_set_workload_free_fn` can be used to replace these with custom functions.
  36. If you need to remove a function from the server you can call either :c:func:`gearman_worker_unregister_all` to remove all functions that the worker has told the :program:`gearmand` server about, or you can use :c:func:`gearman_worker_unregister` to remove just a single function.
  37. ------
  38. RETURN
  39. ------
  40. Various
  41. ----
  42. HOME
  43. ----
  44. To find out more information please check:
  45. `https://gearman.org/gearmand/ <https://gearman.org/gearmand/>`_
  46. --------
  47. SEE ALSO
  48. --------
  49. :manpage:`gearmand(8)` :manpage:`libgearman(3)`