acl  3.5.3.0
disque_job.hpp
浏览该文件的文档.
1 #pragma once
2 #include "../acl_cpp_define.hpp"
3 #include <vector>
4 #include "../stdlib/noncopyable.hpp"
5 #include "../stdlib/string.hpp"
6 
7 #ifndef ACL_CLIENT_ONLY
8 
9 namespace acl
10 {
11 
12 class redis_result;
13 
14 /**
15  * 在从 disque 队列中获得的任务信息的类
16  */
18 {
19 public:
20  disque_job();
21  ~disque_job();
22 
23  /**
24  * get the ID of the job
25  * 获得当前任务的 ID 号
26  * @return {const char*}
27  */
28  const char* get_id() const
29  {
30  return id_.c_str();
31  }
32 
33  /**
34  * get the queue name holding the job
35  * 获得当前任务所在的队列
36  * @return {const char*}
37  */
38  const char* get_queue() const
39  {
40  return queue_.c_str();
41  }
42 
43  /**
44  * get the job's data
45  * 获得当前任务的消息内容
46  * @return {const string&}
47  */
48  const string& get_body() const
49  {
50  return body_;
51  }
52 
53  void set_id(const char* id);
54  void set_queue(const char* name);
55  void set_body(const char* job, size_t len);
56 
57  /////////////////////////////////////////////////////////////////////
58 
59  bool init(const redis_result& rr);
60 
61  const char* get_state() const
62  {
63  return state_.c_str();
64  }
65 
66  int get_repl() const
67  {
68  return repl_;
69  }
70 
71  int get_ttl() const
72  {
73  return ttl_;
74  }
75 
76  long long int get_ctime() const
77  {
78  return ctime_;
79  }
80 
81  int get_delay() const
82  {
83  return delay_;
84  }
85 
86  int get_retry() const
87  {
88  return retry_;
89  }
90 
91  const std::vector<string>& get_nodes_delivered() const
92  {
93  return nodes_delivered_;
94  }
95 
96  const std::vector<string>& get_nodes_confirmed() const
97  {
98  return nodes_confirmed_;
99  }
100 
102  {
103  return next_requeue_within_;
104  }
105 
107  {
108  return next_awake_within_;
109  }
110 
111 private:
112  string id_;
113  string queue_;
114  string state_;
115  int repl_;
116  int ttl_;
117  long long int ctime_;
118  int delay_;
119  int retry_;
120  std::vector<string> nodes_delivered_;
121  std::vector<string> nodes_confirmed_;
122  int next_requeue_within_;
123  int next_awake_within_;
124  string body_;
125 
126  void set_nodes_delivered(const redis_result& rr);
127  void set_nodes_confirmed(const redis_result& rr);
128  void set_nodes(const redis_result& rr, std::vector<string>& out);
129 };
130 
131 } // namespace acl
132 
133 #endif // ACL_CLIENT_ONLY
const char * get_state() const
Definition: disque_job.hpp:61
HTTP_API void const char * name
Definition: lib_http.h:620
int get_delay() const
Definition: disque_job.hpp:81
int get_retry() const
Definition: disque_job.hpp:86
long long int get_ctime() const
Definition: disque_job.hpp:76
const string & get_body() const
Definition: disque_job.hpp:48
int get_next_requeue_within() const
Definition: disque_job.hpp:101
const char * get_queue() const
Definition: disque_job.hpp:38
int get_repl() const
Definition: disque_job.hpp:66
int get_ttl() const
Definition: disque_job.hpp:71
const std::vector< string > & get_nodes_delivered() const
Definition: disque_job.hpp:91
#define ACL_CPP_API
const char * get_id() const
Definition: disque_job.hpp:28
int get_next_awake_within() const
Definition: disque_job.hpp:106
const std::vector< string > & get_nodes_confirmed() const
Definition: disque_job.hpp:96