pub struct PublisherConfigBuilder { /* private fields */ }Implementations§
Source§impl PublisherConfigBuilder
impl PublisherConfigBuilder
Sourcepub fn initial_delay(self, delay: Duration) -> Self
pub fn initial_delay(self, delay: Duration) -> Self
Initial delay before starting publisher.
Default: 10s.
Examples found in repository?
examples/full_config.rs (line 42)
17fn config_builder() -> Config {
18 Config::builder()
19 .dht_config(
20 DhtConfig::builder()
21 .retries(3)
22 .base_retry_interval(Duration::from_secs(5))
23 .max_retry_jitter(Duration::from_secs(10))
24 .get_timeout(Duration::from_secs(10))
25 .put_timeout(Duration::from_secs(10))
26 .build(),
27 )
28 .bootstrap_config(
29 BootstrapConfig::builder()
30 .max_bootstrap_records(5)
31 .publish_record_on_startup(true)
32 .check_older_records_first_on_startup(false)
33 .discovery_poll_interval(Duration::from_millis(2000))
34 .no_peers_retry_interval(Duration::from_millis(1500))
35 .per_peer_join_settle_time(Duration::from_millis(100))
36 .join_confirmation_wait_time(Duration::from_millis(500))
37 .build(),
38 )
39 .max_join_peer_count(4)
40 .publisher_config(
41 PublisherConfig::builder()
42 .initial_delay(Duration::from_secs(10))
43 .base_interval(Duration::from_secs(10))
44 .max_jitter(Duration::from_secs(50))
45 .build(),
46 )
47 .merge_config(
48 MergeConfig::builder()
49 .bubble_merge(
50 BubbleMergeConfig::builder()
51 .min_neighbors(4)
52 .base_interval(Duration::from_secs(60))
53 .max_jitter(Duration::from_secs(120))
54 .fail_topic_creation_on_merge_startup_failure(true)
55 .build(),
56 )
57 .message_overlap_merge(
58 MessageOverlapMergeConfig::builder()
59 .base_interval(Duration::from_secs(60))
60 .max_jitter(Duration::from_secs(120))
61 .fail_topic_creation_on_merge_startup_failure(true)
62 .build(),
63 )
64 .build(),
65 )
66 .timeouts(
67 TimeoutConfig::builder()
68 .join_peer_timeout(Duration::from_secs(5))
69 .broadcast_neighbors_timeout(Duration::from_secs(5))
70 .broadcast_timeout(Duration::from_secs(5))
71 .build(),
72 )
73 .build()
74}Sourcepub fn base_interval(self, interval: Duration) -> Self
pub fn base_interval(self, interval: Duration) -> Self
Base interval for publisher attempts. No-op if interval is Duration::ZERO.
If base_interval is called only once with Duration::ZERO, default value prevails.
If base_interval is first called with a > Duration::ZERO, and then again with Duration::ZERO, the first set value is kept.
Default: 10s.
Examples found in repository?
examples/full_config.rs (line 43)
17fn config_builder() -> Config {
18 Config::builder()
19 .dht_config(
20 DhtConfig::builder()
21 .retries(3)
22 .base_retry_interval(Duration::from_secs(5))
23 .max_retry_jitter(Duration::from_secs(10))
24 .get_timeout(Duration::from_secs(10))
25 .put_timeout(Duration::from_secs(10))
26 .build(),
27 )
28 .bootstrap_config(
29 BootstrapConfig::builder()
30 .max_bootstrap_records(5)
31 .publish_record_on_startup(true)
32 .check_older_records_first_on_startup(false)
33 .discovery_poll_interval(Duration::from_millis(2000))
34 .no_peers_retry_interval(Duration::from_millis(1500))
35 .per_peer_join_settle_time(Duration::from_millis(100))
36 .join_confirmation_wait_time(Duration::from_millis(500))
37 .build(),
38 )
39 .max_join_peer_count(4)
40 .publisher_config(
41 PublisherConfig::builder()
42 .initial_delay(Duration::from_secs(10))
43 .base_interval(Duration::from_secs(10))
44 .max_jitter(Duration::from_secs(50))
45 .build(),
46 )
47 .merge_config(
48 MergeConfig::builder()
49 .bubble_merge(
50 BubbleMergeConfig::builder()
51 .min_neighbors(4)
52 .base_interval(Duration::from_secs(60))
53 .max_jitter(Duration::from_secs(120))
54 .fail_topic_creation_on_merge_startup_failure(true)
55 .build(),
56 )
57 .message_overlap_merge(
58 MessageOverlapMergeConfig::builder()
59 .base_interval(Duration::from_secs(60))
60 .max_jitter(Duration::from_secs(120))
61 .fail_topic_creation_on_merge_startup_failure(true)
62 .build(),
63 )
64 .build(),
65 )
66 .timeouts(
67 TimeoutConfig::builder()
68 .join_peer_timeout(Duration::from_secs(5))
69 .broadcast_neighbors_timeout(Duration::from_secs(5))
70 .broadcast_timeout(Duration::from_secs(5))
71 .build(),
72 )
73 .build()
74}Sourcepub fn max_jitter(self, jitter: Duration) -> Self
pub fn max_jitter(self, jitter: Duration) -> Self
Max random jitter added to publisher interval.
Default: 50s.
Examples found in repository?
examples/full_config.rs (line 44)
17fn config_builder() -> Config {
18 Config::builder()
19 .dht_config(
20 DhtConfig::builder()
21 .retries(3)
22 .base_retry_interval(Duration::from_secs(5))
23 .max_retry_jitter(Duration::from_secs(10))
24 .get_timeout(Duration::from_secs(10))
25 .put_timeout(Duration::from_secs(10))
26 .build(),
27 )
28 .bootstrap_config(
29 BootstrapConfig::builder()
30 .max_bootstrap_records(5)
31 .publish_record_on_startup(true)
32 .check_older_records_first_on_startup(false)
33 .discovery_poll_interval(Duration::from_millis(2000))
34 .no_peers_retry_interval(Duration::from_millis(1500))
35 .per_peer_join_settle_time(Duration::from_millis(100))
36 .join_confirmation_wait_time(Duration::from_millis(500))
37 .build(),
38 )
39 .max_join_peer_count(4)
40 .publisher_config(
41 PublisherConfig::builder()
42 .initial_delay(Duration::from_secs(10))
43 .base_interval(Duration::from_secs(10))
44 .max_jitter(Duration::from_secs(50))
45 .build(),
46 )
47 .merge_config(
48 MergeConfig::builder()
49 .bubble_merge(
50 BubbleMergeConfig::builder()
51 .min_neighbors(4)
52 .base_interval(Duration::from_secs(60))
53 .max_jitter(Duration::from_secs(120))
54 .fail_topic_creation_on_merge_startup_failure(true)
55 .build(),
56 )
57 .message_overlap_merge(
58 MessageOverlapMergeConfig::builder()
59 .base_interval(Duration::from_secs(60))
60 .max_jitter(Duration::from_secs(120))
61 .fail_topic_creation_on_merge_startup_failure(true)
62 .build(),
63 )
64 .build(),
65 )
66 .timeouts(
67 TimeoutConfig::builder()
68 .join_peer_timeout(Duration::from_secs(5))
69 .broadcast_neighbors_timeout(Duration::from_secs(5))
70 .broadcast_timeout(Duration::from_secs(5))
71 .build(),
72 )
73 .build()
74}Sourcepub fn fail_topic_creation_on_publishing_startup_failure(
self,
fail: bool,
) -> Self
pub fn fail_topic_creation_on_publishing_startup_failure( self, fail: bool, ) -> Self
Whether to fail topic creation
If a publisher startup check fails (ret Err()) or just log and run topic without.
Default: true.
Sourcepub fn build(self) -> PublisherConfig
pub fn build(self) -> PublisherConfig
Build the PublisherConfig.
Examples found in repository?
examples/full_config.rs (line 45)
17fn config_builder() -> Config {
18 Config::builder()
19 .dht_config(
20 DhtConfig::builder()
21 .retries(3)
22 .base_retry_interval(Duration::from_secs(5))
23 .max_retry_jitter(Duration::from_secs(10))
24 .get_timeout(Duration::from_secs(10))
25 .put_timeout(Duration::from_secs(10))
26 .build(),
27 )
28 .bootstrap_config(
29 BootstrapConfig::builder()
30 .max_bootstrap_records(5)
31 .publish_record_on_startup(true)
32 .check_older_records_first_on_startup(false)
33 .discovery_poll_interval(Duration::from_millis(2000))
34 .no_peers_retry_interval(Duration::from_millis(1500))
35 .per_peer_join_settle_time(Duration::from_millis(100))
36 .join_confirmation_wait_time(Duration::from_millis(500))
37 .build(),
38 )
39 .max_join_peer_count(4)
40 .publisher_config(
41 PublisherConfig::builder()
42 .initial_delay(Duration::from_secs(10))
43 .base_interval(Duration::from_secs(10))
44 .max_jitter(Duration::from_secs(50))
45 .build(),
46 )
47 .merge_config(
48 MergeConfig::builder()
49 .bubble_merge(
50 BubbleMergeConfig::builder()
51 .min_neighbors(4)
52 .base_interval(Duration::from_secs(60))
53 .max_jitter(Duration::from_secs(120))
54 .fail_topic_creation_on_merge_startup_failure(true)
55 .build(),
56 )
57 .message_overlap_merge(
58 MessageOverlapMergeConfig::builder()
59 .base_interval(Duration::from_secs(60))
60 .max_jitter(Duration::from_secs(120))
61 .fail_topic_creation_on_merge_startup_failure(true)
62 .build(),
63 )
64 .build(),
65 )
66 .timeouts(
67 TimeoutConfig::builder()
68 .join_peer_timeout(Duration::from_secs(5))
69 .broadcast_neighbors_timeout(Duration::from_secs(5))
70 .broadcast_timeout(Duration::from_secs(5))
71 .build(),
72 )
73 .build()
74}Trait Implementations§
Source§impl Clone for PublisherConfigBuilder
impl Clone for PublisherConfigBuilder
Source§fn clone(&self) -> PublisherConfigBuilder
fn clone(&self) -> PublisherConfigBuilder
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for PublisherConfigBuilder
impl RefUnwindSafe for PublisherConfigBuilder
impl Send for PublisherConfigBuilder
impl Sync for PublisherConfigBuilder
impl Unpin for PublisherConfigBuilder
impl UnsafeUnpin for PublisherConfigBuilder
impl UnwindSafe for PublisherConfigBuilder
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more