|
@@ -14,8 +14,6 @@ Edited by
|
|
|
|
|
|
Marius Ovidiu Bucur
|
|
|
|
|
|
-Edited by
|
|
|
-
|
|
|
Charles Chance
|
|
|
|
|
|
Copyright © 2011 Marius Bucur
|
|
@@ -41,7 +39,8 @@ Charles Chance
|
|
|
3.2. notification_address(str)
|
|
|
3.3. multi_notify(int)
|
|
|
3.4. num_workers(int)
|
|
|
- 3.5. ping_interval(int)
|
|
|
+ 3.5. worker_usleep(int)
|
|
|
+ 3.6. ping_interval(int)
|
|
|
|
|
|
4. Functions
|
|
|
|
|
@@ -74,13 +73,14 @@ Charles Chance
|
|
|
1.3. Set notification_address parameter
|
|
|
1.4. Set multi_notify parameter
|
|
|
1.5. Set num_workers parameter
|
|
|
- 1.6. Set ping_interval parameter
|
|
|
- 1.7. dmq_handle_message usage
|
|
|
- 1.8. dmq_send_message usage
|
|
|
- 1.9. dmq_bcast_message usage
|
|
|
- 1.10. dmq_t_replicate usage
|
|
|
- 1.11. dmq_is_from_node usage
|
|
|
- 1.12. dmq.list_nodes usage
|
|
|
+ 1.6. Set worker_usleep parameter
|
|
|
+ 1.7. Set ping_interval parameter
|
|
|
+ 1.8. dmq_handle_message usage
|
|
|
+ 1.9. dmq_send_message usage
|
|
|
+ 1.10. dmq_bcast_message usage
|
|
|
+ 1.11. dmq_t_replicate usage
|
|
|
+ 1.12. dmq_is_from_node usage
|
|
|
+ 1.13. dmq.list_nodes usage
|
|
|
2.1. dmq_api_t structure
|
|
|
2.2. register_dmq_peer usage
|
|
|
2.3. bcast_message usage
|
|
@@ -102,7 +102,8 @@ Chapter 1. Admin Guide
|
|
|
3.2. notification_address(str)
|
|
|
3.3. multi_notify(int)
|
|
|
3.4. num_workers(int)
|
|
|
- 3.5. ping_interval(int)
|
|
|
+ 3.5. worker_usleep(int)
|
|
|
+ 3.6. ping_interval(int)
|
|
|
|
|
|
4. Functions
|
|
|
|
|
@@ -178,7 +179,8 @@ sip:192.168.40.17:5060;status=active
|
|
|
3.2. notification_address(str)
|
|
|
3.3. multi_notify(int)
|
|
|
3.4. num_workers(int)
|
|
|
- 3.5. ping_interval(int)
|
|
|
+ 3.5. worker_usleep(int)
|
|
|
+ 3.6. ping_interval(int)
|
|
|
|
|
|
3.1. server_address(str)
|
|
|
|
|
@@ -231,14 +233,34 @@ modparam("dmq", "multi_notify", 1)
|
|
|
modparam("dmq", "num_workers", 4)
|
|
|
...
|
|
|
|
|
|
-3.5. ping_interval(int)
|
|
|
+3.5. worker_usleep(int)
|
|
|
+
|
|
|
+ The default locking/synchronisation mechanism between producer/consumer
|
|
|
+ threads is the optimum for most environments. On some systems (e.g.
|
|
|
+ FreeBSD) it can cause high CPU load and in such cases, it can be useful
|
|
|
+ to disable locking and switch to polling for tasks at set intervals
|
|
|
+ instead - putting the thread to sleep in-between and taking it out of
|
|
|
+ process during that time.
|
|
|
+
|
|
|
+ A value >0 will disable the default locking and set the polling
|
|
|
+ interval (in microseconds), which can be tuned to suit the specific
|
|
|
+ environment.
|
|
|
+
|
|
|
+ Default value is 0 (recommended for most systems).
|
|
|
+
|
|
|
+ Example 1.6. Set worker_usleep parameter
|
|
|
+...
|
|
|
+modparam("dmq", "worker_usleep", 1000)
|
|
|
+...
|
|
|
+
|
|
|
+3.6. ping_interval(int)
|
|
|
|
|
|
The number of seconds between node pings (for checking status of other
|
|
|
nodes).
|
|
|
|
|
|
Minimum value is “60” (default).
|
|
|
|
|
|
- Example 1.6. Set ping_interval parameter
|
|
|
+ Example 1.7. Set ping_interval parameter
|
|
|
...
|
|
|
modparam("dmq", "ping_interval", 90)
|
|
|
...
|
|
@@ -258,7 +280,7 @@ modparam("dmq", "ping_interval", 90)
|
|
|
|
|
|
This function can be used from REQUEST_ROUTE.
|
|
|
|
|
|
- Example 1.7. dmq_handle_message usage
|
|
|
+ Example 1.8. dmq_handle_message usage
|
|
|
...
|
|
|
if(is_method("KDMQ"))
|
|
|
{
|
|
@@ -278,7 +300,7 @@ modparam("dmq", "ping_interval", 90)
|
|
|
|
|
|
This function can be used from any route.
|
|
|
|
|
|
- Example 1.8. dmq_send_message usage
|
|
|
+ Example 1.9. dmq_send_message usage
|
|
|
...
|
|
|
dmq_send_message("peer_name", "sip:10.0.0.21:5060", "Message body...", "
|
|
|
text/plain");
|
|
@@ -296,7 +318,7 @@ text/plain");
|
|
|
|
|
|
This function can be used from any route.
|
|
|
|
|
|
- Example 1.9. dmq_bcast_message usage
|
|
|
+ Example 1.10. dmq_bcast_message usage
|
|
|
...
|
|
|
dmq_bcast_message("peer_name", "Message body...", "text/plain");
|
|
|
...
|
|
@@ -318,7 +340,7 @@ text/plain");
|
|
|
|
|
|
This function can be used from REQUEST_ROUTE only.
|
|
|
|
|
|
- Example 1.10. dmq_t_replicate usage
|
|
|
+ Example 1.11. dmq_t_replicate usage
|
|
|
...
|
|
|
dmq_t_replicate();
|
|
|
...
|
|
@@ -330,7 +352,7 @@ text/plain");
|
|
|
|
|
|
This function can be used from REQUEST_ROUTE only.
|
|
|
|
|
|
- Example 1.11. dmq_is_from_node usage
|
|
|
+ Example 1.12. dmq_is_from_node usage
|
|
|
...
|
|
|
# Example REGISTER block
|
|
|
if (dmq_is_from_node()) {
|
|
@@ -351,7 +373,7 @@ op test again
|
|
|
|
|
|
List the DMQ nodes. It has no parameters.
|
|
|
|
|
|
- Example 1.12. dmq.list_nodes usage
|
|
|
+ Example 1.13. dmq.list_nodes usage
|
|
|
...
|
|
|
kamcmd dmq.list_nodes
|
|
|
...
|