代码之家  ›  专栏  ›  技术社区  ›  werk jlcv

gearman如何区分两种工作?

  •  0
  • werk jlcv  · 技术社区  · 8 年前

    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服务器会把这两个任务搞乱。无论哪项工作完成得更早,都将作为两项工作的结果返回。

    这是真的吗,gearman将使用时间戳来区分不同的工作,如果 在里面 gearman_client_do() 分配给 无效的

    编辑:类型 gearman_client_do

    1 回复  |  直到 8 年前
        1
  •  0
  •   palik    8 年前

    服务器可以使用唯一ID来减少队列长度。如果 已提交具有相同唯一ID的作业,服务器可能会 将此请求附加到已存在的作业。这包括工作 已经在进行中,在这种情况下,将发送非后台作业 “凝聚”。

    gearman protocol

    这是真的吗,gearman会用时间戳来区分 无效的?

    时间戳是队列中作业顺序的问题。 gearmand 将在没有唯一id的情况下执行每个作业。 implementation of gearman_client_do