This is an automated email from the ASF dual-hosted git repository. xyz pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/pulsar-client-python.git
The following commit(s) were added to refs/heads/main by this push: new 02a1bfd add stats_interval_in_seconds parameter to the client configuration (#248) 02a1bfd is described below commit 02a1bfd4cefbee662740324213494aedca5c6ea0 Author: hadican <abdulhadi.celenlio...@gmail.com> AuthorDate: Thu Mar 27 04:47:18 2025 +0300 add stats_interval_in_seconds parameter to the client configuration (#248) Co-authored-by: Abdulhadi Celenlioglu <abdulh...@intenseye.com> --- pulsar/__init__.py | 6 ++++++ src/config.cc | 3 +++ tests/pulsar_test.py | 1 + 3 files changed, 10 insertions(+) diff --git a/pulsar/__init__.py b/pulsar/__init__.py index 48ff664..ba89d40 100644 --- a/pulsar/__init__.py +++ b/pulsar/__init__.py @@ -482,6 +482,7 @@ class Client: message_listener_threads=1, concurrent_lookup_requests=50000, log_conf_file_path=None, + stats_interval_in_seconds=600, use_tls=False, tls_trust_certs_file_path=None, tls_allow_insecure_connection=False, @@ -520,6 +521,9 @@ class Client: log_conf_file_path: str, optional This parameter is deprecated and makes no effect. It's retained only for compatibility. Use `logger` to customize a logger. + stats_interval_in_seconds: int, default=600 + Set the interval between each stats information update. Stats are printed and/or + passed to the statistics listener at this interval. Set to 0 to disable stats collection. use_tls: bool, default=False Configure whether to use TLS encryption on the connection. This setting is deprecated. TLS will be automatically enabled if the ``serviceUrl`` is set to ``pulsar+ssl://`` or ``https://`` @@ -560,6 +564,7 @@ class Client: _check_type(int, message_listener_threads, 'message_listener_threads') _check_type(int, concurrent_lookup_requests, 'concurrent_lookup_requests') _check_type_or_none(str, log_conf_file_path, 'log_conf_file_path') + _check_type(int, stats_interval_in_seconds, 'stats_interval_in_seconds') _check_type(bool, use_tls, 'use_tls') _check_type_or_none(str, tls_trust_certs_file_path, 'tls_trust_certs_file_path') _check_type(bool, tls_allow_insecure_connection, 'tls_allow_insecure_connection') @@ -574,6 +579,7 @@ class Client: conf.io_threads(io_threads) conf.message_listener_threads(message_listener_threads) conf.concurrent_lookup_requests(concurrent_lookup_requests) + conf.stats_interval_in_seconds(stats_interval_in_seconds) if isinstance(logger, logging.Logger): conf.set_logger(self._prepare_logger(logger)) diff --git a/src/config.cc b/src/config.cc index bada39b..7a4aea3 100644 --- a/src/config.cc +++ b/src/config.cc @@ -157,6 +157,9 @@ void export_config(py::module_& m) { .def("concurrent_lookup_requests", &ClientConfiguration::getConcurrentLookupRequest) .def("concurrent_lookup_requests", &ClientConfiguration::setConcurrentLookupRequest, return_value_policy::reference) + .def("stats_interval_in_seconds", &ClientConfiguration::getStatsIntervalInSeconds) + .def("stats_interval_in_seconds", &ClientConfiguration::setStatsIntervalInSeconds, + return_value_policy::reference) .def("use_tls", &ClientConfiguration::isUseTls) .def("use_tls", &ClientConfiguration::setUseTls, return_value_policy::reference) .def("tls_trust_certs_file_path", &ClientConfiguration::getTlsTrustCertsFilePath, diff --git a/tests/pulsar_test.py b/tests/pulsar_test.py index 4d5dcb3..4e4bd37 100755 --- a/tests/pulsar_test.py +++ b/tests/pulsar_test.py @@ -828,6 +828,7 @@ class PulsarTest(TestCase): self._check_value_error(lambda: Client(None)) self._check_value_error(lambda: Client(self.serviceUrl, authentication="test")) self._check_value_error(lambda: Client(self.serviceUrl, operation_timeout_seconds="test")) + self._check_value_error(lambda: Client(self.serviceUrl, stats_interval_in_seconds="test")) self._check_value_error(lambda: Client(self.serviceUrl, io_threads="test")) self._check_value_error(lambda: Client(self.serviceUrl, message_listener_threads="test")) self._check_value_error(lambda: Client(self.serviceUrl, concurrent_lookup_requests="test"))