|
37 | 37 | %% External API supplied for behaviour implementations to share. |
38 | 38 | -export([ |
39 | 39 | status/1, |
| 40 | + queue_status/2, |
| 41 | + queue_status_reset/2, |
40 | 42 |
|
41 | 43 | create_connection/3, |
42 | 44 | checkin_connection/4, |
|
69 | 71 | -callback checkout_pending_error(config_type(), buffering_strategy_module(), requests_queue_name(), Error) |
70 | 72 | -> retry | Error when Error::any(). |
71 | 73 |
|
| 74 | +-callback queue_status (connection_queue_name() | requests_queue_name()) -> {status, proplists:proplist()}. |
| 75 | +-callback queue_status_reset (connection_queue_name() | requests_queue_name()) -> {status, proplists:proplist()}. |
| 76 | + |
72 | 77 |
|
73 | 78 | %%%----------------------------------------------------------------------- |
74 | 79 | %%% Buffering strategy provided functions |
|
87 | 92 | -spec decay_causes_death (config_type(), connection_id()) -> boolean(). |
88 | 93 | -spec decay_connection (config_type(), buffering_strategy_module(), connection_id()) -> true. |
89 | 94 |
|
90 | | --spec status (config_type()) -> status_reply(). |
| 95 | +-spec status (config_type()) -> status_reply(). |
| 96 | +-spec queue_status (config_type(), connection_queue_name() | requests_queue_name()) |
| 97 | + -> {status, proplists:proplist()}. |
| 98 | +-spec queue_status_reset (config_type(), connection_queue_name() | requests_queue_name()) |
| 99 | + -> {status, proplists:proplist()}. |
| 100 | + |
91 | 101 | -spec report_available_resources(Queue, Connections, Max_Or_Timeout) -> {Queue, Connections, Max_Or_Timeout} |
92 | 102 | when Queue :: queue_name(), |
93 | 103 | Connections :: max_connections() | pending_count(), |
@@ -375,6 +385,14 @@ status(Config) -> |
375 | 385 | {status, {idle_connections(Config), |
376 | 386 | pending_requests(Config)}}. |
377 | 387 |
|
| 388 | +queue_status(Config, Queue_Name) -> |
| 389 | + {_Buffering, BS_Module} = elysium_connection:get_buffer_strategy_module(Config), |
| 390 | + BS_Module:queue_status(Config, Queue_Name). |
| 391 | + |
| 392 | +queue_status_reset(Config, Queue_Name) -> |
| 393 | + {_Buffering, BS_Module} = elysium_connection:get_buffer_strategy_module(Config), |
| 394 | + BS_Module:queue_status_reset(Config, Queue_Name). |
| 395 | + |
378 | 396 | report_available_resources(Queue_Name, {missing_ets_buffer, Queue_Name}, Max) -> |
379 | 397 | {Queue_Name, {missing_ets_buffer, 0, Max}}; |
380 | 398 | report_available_resources(Queue_Name, Num_Sessions, Max) -> |
|
0 commit comments