Browse Source

Update docs for setting worker identifier.

Partial fix for EPOCH.
Brian Aker 12 years ago
parent
commit
5aa4cde97e

+ 2 - 0
bootstrap.sh

@@ -1039,6 +1039,8 @@ check_make_target()
   case $1 in
     'self')
       ;;
+    'rpm')
+      ;;
     'gdb')
       ;;
     'clean_op')

+ 1 - 0
docs/conf.py.in

@@ -346,6 +346,7 @@ man_pages = [
   ('libgearman/gearman_task_attr_t', 'gearman_task_attr_init', u'Gearmand Documentation, http://gearman.info/', [u'Data Differential http://www.datadifferential.com/'], 3),
   ('libgearman/gearman_task_attr_t', 'gearman_task_attr_init_epoch', u'Gearmand Documentation, http://gearman.info/', [u'Data Differential http://www.datadifferential.com/'], 3),
   ('libgearman/gearman_task_attr_t', 'gearman_task_attr_init_background', u'Gearmand Documentation, http://gearman.info/', [u'Data Differential http://www.datadifferential.com/'], 3),
+  ('libgearman/gearman_worker_set_identifier', 'gearman_worker_set_identifier', u'Gearmand Documentation, http://gearman.info/', [u'Data Differential http://www.datadifferential.com/'], 3),
   ('libgearman/gearman_worker_add_server', 'gearman_worker_add_server', u'Gearmand Documentation, http://gearman.info/', [u'Data Differential http://www.datadifferential.com/'], 3),
   ('libgearman/gearman_worker_add_server', 'gearman_worker_add_servers', u'Gearmand Documentation, http://gearman.info/', [u'Data Differential http://www.datadifferential.com/'], 3),
   ('libgearman/gearman_worker_add_server', 'gearman_worker_remove_servers', u'Gearmand Documentation, http://gearman.info/', [u'Data Differential http://www.datadifferential.com/'], 3),

+ 38 - 0
docs/libgearman/gearman_worker_set_identifier.rst

@@ -0,0 +1,38 @@
+
+=============================
+Setting a worker's identifier
+=============================
+
+
+--------
+SYNOPSIS
+--------
+
+#include <libgearman/gearman.h>
+
+.. c:function:: gearman_return_t gearman_worker_set_identifier(gearman_worker_st *worker, const char *id, size_t id_size)
+
+Link with -lgearman
+
+-----------
+DESCRIPTION
+-----------
+
+:c:func:`gearman_worker_set_identifier` sets the identifier that the server uses to identify the worker.
+
+
+------------
+RETURN VALUE
+------------
+
+:c:func:`gearman_worker_set_identifier` return :c:type:`gearman_return_t`.
+
+----
+HOME
+----
+
+To find out more information please check:
+`http://gearman.info/ <http://gearman.info/>`_
+
+.. seealso:: :program:`gearmand` :doc:`../libgearman`  :c:type:`gearman_worker_st`
+

+ 1 - 0
docs/libgearman/index.rst

@@ -70,6 +70,7 @@ Worker Functions
    gearman_worker_define_function
    gearman_worker_error
    gearman_worker_set_log_fn
+   gearman_worker_set_identifier
 
 ****
 Misc

+ 0 - 11
libgearman-1.0/task_attr.h

@@ -77,17 +77,6 @@ GEARMAN_API
 GEARMAN_API
   gearman_task_attr_t gearman_task_attr_init_background(gearman_job_priority_t priority);
 
-// Everything below here is private
-
-GEARMAN_LOCAL
-time_t gearman_task_attr_has_epoch(const gearman_task_attr_t *);
-
-GEARMAN_LOCAL
-gearman_job_priority_t gearman_task_attr_priority(const gearman_task_attr_t *);
-
-GEARMAN_LOCAL
-bool gearman_task_attr_is_background(const gearman_task_attr_t *);
-
 #ifdef __cplusplus
 }
 #endif

+ 3 - 1
libgearman-server/gearmand.cc

@@ -49,6 +49,7 @@
 #include <sys/socket.h>
 #include <sys/types.h>
 #include <sys/utsname.h>
+#include <unistd.h>
 
 #include <set>
 #include <string>
@@ -335,7 +336,8 @@ gearmand_error_t gearmand_run(gearmand_st *gearmand)
   /* Initialize server components. */
   if (gearmand->base == NULL)
   {
-    gearmand_log_info(GEARMAN_DEFAULT_LOG_PARAM, "Starting up, verbose set to %s", 
+    gearmand_log_info(GEARMAN_DEFAULT_LOG_PARAM, "Starting up(%lu), verbose set to %s", 
+                      (unsigned long)(getpid()),
                       gearmand_verbose_name(gearmand->verbose));
 
     if (gearmand->threads > 0)

+ 1 - 2
libgearman-server/job.c

@@ -167,8 +167,7 @@ gearman_server_job_add_reducer(gearman_server_st *server,
     {
       /* Look up job via unique ID first to make sure it's not a duplicate. */
       key= _server_job_hash(unique, unique_size);
-      server_job= _server_job_get_unique(server, key, server_function, unique,
-                                         0);
+      server_job= _server_job_get_unique(server, key, server_function, unique, 0);
     }
   }
 

+ 6 - 2
libgearman-server/server.cc

@@ -237,8 +237,12 @@ gearmand_error_t gearman_server_run_command(gearman_server_con_st *server_con,
       if (packet->command == GEARMAN_COMMAND_SUBMIT_JOB_EPOCH)
       {
         char *endptr;
-        when= strtoll((char *)packet->arg[1], &endptr, 10);
-        if (when == LONG_MIN or when == LONG_MAX or errno == EINVAL or when > UINT8_MAX or when == 0)
+        // @note stroll will set errno if error, but it might also leave errno
+        // alone if none happens (so a previous call that sets it might cause
+        // an error.
+        errno= 0;
+        when= strtoll((char *)packet->arg[2], &endptr, 10);
+        if (errno)
         {
           return gearmand_log_error(GEARMAN_DEFAULT_LOG_PARAM, "strtoul(%ul)", when);
         }

+ 1 - 0
libgearman/common.h

@@ -63,6 +63,7 @@ struct gearman_result_st;
 #include <libgearman/actions.hpp>
 #include <libgearman/string.hpp>
 #include <libgearman/command.h>
+#include <libgearman/task_attr.h>
 #include <libgearman/task.hpp>
 #include <libgearman/job.h>
 

+ 1 - 0
libgearman/include.am

@@ -45,6 +45,7 @@ noinst_HEADERS+= \
 		 libgearman/strcommand.h \
 		 libgearman/string.hpp \
 		 libgearman/task.hpp \
+		 libgearman/task_attr.h \
 		 libgearman/unique.hpp \
 		 libgearman/universal.hpp \
 		 libgearman/vector.hpp

Some files were not shown because too many files changed in this diff