В нашем сценарии мы запускаем несколько серверов Gearman и используем несколько потоков для назначения рабочих мест.В приведенной ниже функции API параметру unique
присваивается значение по умолчанию NULL
.
void *gearman_client_do(gearman_client_st *client, const char *function_name, const char *unique, const void *workload, size_t workload_size, size_t *result_size, gearman_return_t *ret_ptr);
Итак, что мы наблюдали здесь, так это если два задания распределяются нав то же время, тогда серверы Gearman испортят эти два.Независимо от того, какое задание было завершено ранее, оно будет возвращено в результате обоих заданий.
Это правда, что механизм будет использовать метку времени для различения разных заданий, если unique
в gearman_client_do()
назначено NULL
?
РЕДАКТИРОВАТЬ: тип gearman_client_do