acl  3.5.3.0
acl::disque类 参考

#include <disque.hpp>

+ 类 acl::disque 继承关系图:
+ acl::disque 的协作图:

Public 成员函数

 disque ()
 
 disque (redis_client *conn)
 
 disque (redis_client_cluster *cluster)
 
ACL_CPP_DEPRECATED disque (redis_client_cluster *cluster, size_t max_conns)
 
virtual ~disque ()
 
const char * addjob (const char *name, const char *job, int timeout, const std::map< string, int > *args=NULL)
 
const char * addjob (const char *name, const string &job, int timeout, const std::map< string, int > *args=NULL)
 
const char * addjob (const char *name, const void *job, size_t job_len, int timeout, const std::map< string, int > *args=NULL)
 
const char * addjob (const char *name, const char *job, int timeout, const disque_cond *cond)
 
const char * addjob (const char *name, const string &job, int timeout, const disque_cond *cond)
 
const char * addjob (const char *name, const void *job, size_t job_len, int timeout, const disque_cond *cond)
 
const std::vector< disque_job * > * getjob (const std::vector< string > &names, size_t timeout, size_t count)
 
const std::vector< disque_job * > * getjob (const char *name, size_t timeout, size_t count)
 
int ackjob (const std::vector< string > &job_ids)
 
int fastack (const std::vector< string > &job_ids)
 
const std::vector< disque_job * > * qpeek (const char *name, int count)
 
int qlen (const char *name)
 
const disque_jobshow (const char *job_id)
 
int enqueue (const std::vector< string > &job_ids)
 
int dequeue (const std::vector< string > &job_ids)
 
int deljob (const std::vector< string > &job_ids)
 
bool info (std::map< string, string > &out)
 
const std::vector< disque_node * > * hello ()
 
- Public 成员函数 继承自 acl::redis_command
 redis_command (void)
 
 redis_command (redis_client *conn)
 
 redis_command (redis_client_cluster *cluster)
 
ACL_CPP_DEPRECATED redis_command (redis_client_cluster *cluster, size_t max_conns)
 
 redis_command (redis_client_pipeline *pipeline)
 
virtual ~redis_command (void)
 
void set_check_addr (bool on)
 
void clear (bool save_slot=false)
 
void reset (bool save_slot=false)
 
void set_client (redis_client *conn)
 
redis_clientget_client (void) const
 
const char * get_client_addr (void) const
 
void set_cluster (redis_client_cluster *cluster)
 
ACL_CPP_DEPRECATED void set_cluster (redis_client_cluster *cluster, size_t max_conns)
 
redis_client_clusterget_cluster (void) const
 
void set_pipeline (redis_client_pipeline *pipeline, bool use_mbox=true)
 
redis_client_pipelineget_pipeline (void) const
 
dbuf_poolget_dbuf (void) const
 
redis_result_t result_type (void) const
 
const char * result_status (void) const
 
const char * result_error (void) const
 
size_t result_size (void) const
 
int result_number (bool *success=NULL) const
 
long long int result_number64 (bool *success=NULL) const
 
const char * get_result (size_t i, size_t *len=NULL) const
 
bool eof (void) const
 
const redis_resultget_result (void) const
 
const redis_resultresult_child (size_t i) const
 
const char * result_value (size_t i, size_t *len=NULL) const
 
void set_slice_request (bool on)
 
void set_slice_respond (bool on)
 
const redis_resultrequest (size_t argc, const char *argv[], size_t lens[], size_t nchild=0)
 
const redis_resultrequest (const std::vector< string > &args, size_t nchild=0)
 
const stringrequest_buf (void) const
 
void build_request (size_t argc, const char *argv[], size_t lens[])
 
void hash_slot (const char *key)
 
void hash_slot (const char *key, size_t len)
 
int get_slot (void) const
 
bool is_check_addr (void) const
 
const char * get_addr (const char *info)
 
void set_client_addr (const char *addr)
 
void set_client_addr (redis_client &conn)
 
redis_request * get_request_obj (void) const
 
stringget_request_buf (void) const
 
bool is_slice_req (void) const
 
redis_pipeline_messageget_pipeline_message (void)
 

额外继承的成员函数

- 静态 Public 成员函数 继承自 acl::redis_command
static void build_request (size_t argc, const char *argv[], size_t lens[], string &out)
 
- Protected 成员函数 继承自 acl::redis_command
const redis_resultrun (size_t nchild=0, int *timeout=NULL)
 
void clear_request (void)
 
const redis_result ** scan_keys (const char *cmd, const char *key, int &cursor, size_t &size, const char *pattern, const size_t *count)
 
const redis_result ** scan_keys (const char *cmd, const char *key, size_t klen, int &cursor, size_t &size, const char *pattern, const size_t *count)
 
void build (const char *cmd, const char *key, const std::map< string, string > &attrs)
 
void build (const char *cmd, const char *key, size_t klen, const std::map< string, string > &attrs)
 
void build (const char *cmd, const char *key, const std::map< string, const char * > &attrs)
 
void build (const char *cmd, const char *key, const std::vector< string > &names, const std::vector< string > &values)
 
void build (const char *cmd, const char *key, size_t klen, const std::vector< string > &names, const std::vector< string > &values)
 
void build (const char *cmd, const char *key, const std::vector< const char * > &names, const std::vector< const char * > &values)
 
void build (const char *cmd, const char *key, const char *names[], const char *values[], size_t argc)
 
void build (const char *cmd, const char *key, const int names[], const char *values[], size_t argc)
 
void build (const char *cmd, const char *key, const char *names[], const size_t names_len[], const char *values[], const size_t values_len[], size_t argc)
 
void build (const char *cmd, const char *key, size_t klen, const char *names[], const size_t names_len[], const char *values[], const size_t values_len[], size_t argc)
 
void build (const char *cmd, const char *key, const std::vector< string > &names)
 
void build (const char *cmd, const char *key, size_t klen, const std::vector< string > &names)
 
void build (const char *cmd, const char *key, const std::vector< const char * > &names)
 
void build (const char *cmd, const char *key, const std::vector< int > &names)
 
void build (const char *cmd, const char *key, const char *names[], size_t argc)
 
void build (const char *cmd, const char *key, const char *names[], const size_t lens[], size_t argc)
 
void build (const char *cmd, const char *key, size_t klen, const char *names[], const size_t lens[], size_t argc)
 
void build (const char *cmd, const char *key, const int names[], size_t argc)
 
int get_number (bool *success=NULL)
 
long long int get_number64 (bool *success=NULL)
 
int get_number (std::vector< int > &out)
 
int get_number64 (std::vector< long long int > &out)
 
bool check_status (const char *success="OK")
 
int get_status (std::vector< bool > &out)
 
const char * get_status (void)
 
int get_string (string &buf)
 
int get_string (string *buf)
 
int get_string (char *buf, size_t size)
 
int get_strings (std::vector< string > &result)
 
int get_strings (std::vector< string > *result)
 
int get_strings (std::list< string > &result)
 
int get_strings (std::list< string > *result)
 
int get_strings (std::map< string, string > &result)
 
int get_strings (std::vector< string > &names, std::vector< string > &values)
 
int get_strings (std::vector< const char * > &names, std::vector< const char * > &values)
 
void argv_space (size_t n)
 
void build_request1 (size_t argc, const char *argv[], size_t lens[])
 
void build_request2 (size_t argc, const char *argv[], size_t lens[])
 
void logger_result (const redis_result *result)
 
- Protected 成员函数 继承自 acl::acl::noncopyable
 noncopyable ()
 
 ~noncopyable ()
 
- Protected 属性 继承自 acl::redis_command
dbuf_pooldbuf_
 
bool check_addr_
 
char addr_ [32]
 
redis_clientconn_
 
redis_client_clustercluster_
 
redis_client_pipelinepipeline_
 
bool pipe_use_mbox_
 
int slot_
 
int redirect_max_
 
int redirect_sleep_
 
bool slice_req_
 
stringrequest_buf_
 
redis_request * request_obj_
 
size_t argv_size_
 
const char ** argv_
 
size_t * argv_lens_
 
size_t argc_
 
bool slice_res_
 
redis_pipeline_messagepipe_msg_
 
const redis_resultresult_
 

详细描述

disque 命令操作类

在文件 disque.hpp23 行定义.

构造及析构函数说明

◆ disque() [1/4]

acl::disque::disque ( )

◆ disque() [2/4]

acl::disque::disque ( redis_client conn)

◆ disque() [3/4]

◆ disque() [4/4]

ACL_CPP_DEPRECATED acl::disque::disque ( redis_client_cluster cluster,
size_t  max_conns 
)

◆ ~disque()

virtual acl::disque::~disque ( )
virtual

成员函数说明

◆ ackjob()

int acl::disque::ackjob ( const std::vector< string > &  job_ids)

acknowledge the execution of one or more jobs via IDs. The node receiving the ACK will replicate it to multiple nodes and will try to garbage collect both the job and the ACKs from the cluster so that memory can be freed. 通过给定任务 ID , 向节点告知任务已经被执行。接收到 ACK 消息的节点会将该消息 复制至多个节点, 并尝试对任务和来自集群的 ACK 消息进行垃圾回收操作, 从而释放 被占用的内存。

参数
job_ids{const std::vector<acl::string>&} the jobs' IDs 任务 ID 集合
返回
{int} return the number of IDs been ACKed, -1 will be returned if some error happened 返回被确认的任务个数,如果出错则返回 -1

◆ addjob() [1/6]

const char* acl::disque::addjob ( const char *  name,
const char *  job,
int  timeout,
const std::map< string, int > *  args = NULL 
)

add a job to the specified queue 添加一个任务消息至指定的队列中

参数
name{const char*} the name of the specified queue 队列名称
job{const char*} a message to deliver 任务消息字符串
timeout{int} the command timeout in milliseconds 该命令执行的超时时间(毫秒)
args{const std::map<acl::string, int>*} the condition for ADDJOB command, the conditions name include: REPLICATE, DELAY, RETRY, TTL, MAXLEN, ASYNC, if the args was NULL, none condition will be used in this operation 添加消息的处理条件集合,对应的条件内容项: REPLICATE – 副本个数, DELAY – 指定任务在放入各个节点的队列之前, 需要等待多少秒钟 TTL – 任务生存周期(秒) MAXLEN – 指定队列最多可以存放多少个待传递的任务 ASYNC – 服务端采用异步方式将任务同步至其副本结点
返回
{const char*} a ID of the job will be returned, NULL will be returned if some error happened. 返回任务 ID 号,如果返回 NULL 则表示出错

◆ addjob() [2/6]

const char* acl::disque::addjob ( const char *  name,
const string job,
int  timeout,
const std::map< string, int > *  args = NULL 
)

◆ addjob() [3/6]

const char* acl::disque::addjob ( const char *  name,
const void *  job,
size_t  job_len,
int  timeout,
const std::map< string, int > *  args = NULL 
)

◆ addjob() [4/6]

const char* acl::disque::addjob ( const char *  name,
const char *  job,
int  timeout,
const disque_cond cond 
)

add a job to the specified queue 向指定消息队列添加任务

参数
name{const char*} the name of the specified queue 指定的消息队列名称
job{const char*} a message to deliver 将添加的任务
timeout{int} the command timeout in milliseconds 毫秒精度的命令超时限制
cond{const acl::disque_cond*} the condition for the ADDJOB 添加任务的条件,参见类 disque_cond
返回
{const char*} a ID of the job will be returned, NULL will be returned if some error happened. 返回任务 ID 号,如果返回 NULL 则表示出错

◆ addjob() [5/6]

const char* acl::disque::addjob ( const char *  name,
const string job,
int  timeout,
const disque_cond cond 
)

◆ addjob() [6/6]

const char* acl::disque::addjob ( const char *  name,
const void *  job,
size_t  job_len,
int  timeout,
const disque_cond cond 
)

◆ deljob()

int acl::disque::deljob ( const std::vector< string > &  job_ids)

completely delete a job from a node. 在节点里面彻底地删除给定的任务。 这个命令和 FASTACK 很相似, 唯一的不同是, DELJOB 命令引发的删除操作只会在单个节点里面执行, 它不会将 DELJOB 集群总线 消息(cluster bus message)发送至其他节点

参数
job_ids{const std::vector<acl::string>&} the job IDs 被删除的任务 ID 集合
返回
{int} return the number of jobs been deleted, -1 will be returned if some error happens. 返回被删除的任务数量,如果出错则返回 -1

◆ dequeue()

int acl::disque::dequeue ( const std::vector< string > &  job_ids)

remove the jobs from the queue 从队列里面移除指定的任务

参数
job_ids{const std::vector<acl::string>&} the job IDs 准备移除的任务 ID 集合
返回
{int} return the number of jobs been removed, -1 will be returned if some error happens. 返回被移除的任务数量,如果出错则返回 -1

◆ enqueue()

int acl::disque::enqueue ( const std::vector< string > &  job_ids)

queue jobs if not already queued 如果给定任务未被放入到队列里, 则把它们放入到队列里

参数
job_ids{const std::vector<acl::string>&} the job IDs 指定的任务 ID 集合
返回
{int} return the number of jobs been queued, -1 will be returned if some error happens. 返回被放入队列里的任务数量,如果出错则返回 -1

◆ fastack()

int acl::disque::fastack ( const std::vector< string > &  job_ids)

perform a best effort cluster wide detection of the specified job IDs. 尽最大努力在集群范围内对给定的任务进行删除;在网络连接良好并且所有节点都在线时, 这个命令的效果和 ACKJOB 命令的效果一样, 但是因为这个命令引发的消息交换比 ACKJOB 要少, 所以它的速度比 ACKJOB 要快不少;但是当集群中包含了失效节点的 时候, FASTACK 命令比 ACKJOB 命令更容易出现多次发送同一消息的情况

参数
job_ids{const std::vector<acl::string>&} the jobs' IDs 任务 ID 集合
返回
{int} return the number of IDs been ACKed, -1 will be returned if some error happened 返回被确认的任务个数,如果出错则返回 -1

◆ getjob() [1/2]

const std::vector<disque_job*>* acl::disque::getjob ( const std::vector< string > &  names,
size_t  timeout,
size_t  count 
)

get jobs from the specified queues, or return NULL if the timeout is reached. 从指定的队列集合中获得取指定最大数量的任务

参数
names{const std::vector<acl::string>&} the specified queues 指定的列表名称集合
timeout{int} the command timeout in milliseconds 毫秒精度的命令超时限制
count{size_t} the max count of the jobs to be got 指定了返回任务结果集的最大个数限制
返回
{const std::vector<acl::disque_job*>*} return the jobs, or return NULL if the timeout is reached or some error happens. 返回结果集。如果超时或发生错误则返回 NULL

◆ getjob() [2/2]

const std::vector<disque_job*>* acl::disque::getjob ( const char *  name,
size_t  timeout,
size_t  count 
)

◆ hello()

const std::vector<disque_node*>* acl::disque::hello ( )

get the information of all the nodes in the cluster 获得集群中所有结点的信息

返回
{const std::vector<acl::disque_node*>*} all the nodes' information in the cluster, return NULL if some error happened. 返回集群中所有结点信息的结果集,如果出错则返回 NULL;参考类 disque_node

◆ info()

bool acl::disque::info ( std::map< string, string > &  out)

display the information of the disque cluster 获得当前集群的状态信息

参数
out{std::map<acl::string, acl::string>&} store result 存储结果
返回
{bool} if the operation is successful 操作是否正常,如果出错则返回 false

◆ qlen()

int acl::disque::qlen ( const char *  name)

get the number of jobs stored in the specified queue 获得指定队列中的任务数量

参数
name{const char*} the specified queue 指定的队列名称
返回
{int} return the number of the jobs in queue 返回指定队列中的任务数量,返回出错则返回 -1

◆ qpeek()

const std::vector<disque_job*>* acl::disque::qpeek ( const char *  name,
int  count 
)

peek some jobs no more than the specified count from the specified queue and remain these jobs in queue. 在不取出任务的情况下, 从队列里面返回指定数量的任务

参数
name{const char*} the specified queue 指定的队列名称
count{int} limit the max count of jobs to be got 限定了返回结果集的最大数量
返回
{const std::vector<acl::disque_job*>*} return the jobs if the queue isn't empty. NULL will be returned if the queue is empty or some error happened. 返回结果集,如果队列为空或出错则返回 NULL

◆ show()

const disque_job* acl::disque::show ( const char *  job_id)

get the stat information of the specified job by job id 根据任务 ID 获得任务的相关信息

参数
job_id{const char*} the id of the job 指定的任务 ID
返回
{const acl::disque_job*} return the job's information, return NULL if the job doesn't exist or some error happens. 返回指定任务的信息,参考类 disque_job;如果任务不存在或出错则返回 NULL

该类的文档由以下文件生成: