mirror of
https://github.com/taigrr/nats.docs
synced 2025-01-18 04:03:23 -08:00
81 lines
2.0 KiB
Markdown
81 lines
2.0 KiB
Markdown
# Pausing Between Reconnect Attempts
|
||
|
||
It doesn’t make much sense to try to connect to the same server over and over. To prevent this sort of thrashing, and wasted reconnect attempts, especially when using TLS, libraries provide a wait setting. Generally clients make sure that between two reconnect attempts to the **same** server at least a certain amount of time has passed. The concrete implementation depends on the library used.
|
||
|
||
This setting not only prevents wasting client resources, it also alleviates a [_thundering herd_](random.md) situation when additional servers are not available.
|
||
|
||
{% tabs %}
|
||
{% tab title="Go" %}
|
||
```go
|
||
// Set reconnect interval to 10 seconds
|
||
nc, err := nats.Connect("demo.nats.io", nats.ReconnectWait(10*time.Second))
|
||
if err != nil {
|
||
log.Fatal(err)
|
||
}
|
||
defer nc.Close()
|
||
|
||
// Do something with the connection
|
||
```
|
||
{% endtab %}
|
||
|
||
{% tab title="Java" %}
|
||
```java
|
||
Options options = new Options.Builder().
|
||
server("nats://demo.nats.io:4222").
|
||
reconnectWait(Duration.ofSeconds(10)). // Set Reconnect Wait
|
||
build();
|
||
Connection nc = Nats.connect(options);
|
||
|
||
// Do something with the connection
|
||
|
||
nc.close();
|
||
```
|
||
{% endtab %}
|
||
|
||
{% tab title="JavaScript" %}
|
||
```javascript
|
||
let nc = NATS.connect({
|
||
servers: ["nats://demo.nats.io:4222"]
|
||
});
|
||
```
|
||
{% endtab %}
|
||
|
||
{% tab title="Python" %}
|
||
```python
|
||
nc = NATS()
|
||
await nc.connect(
|
||
servers=["nats://demo.nats.io:4222"],
|
||
reconnect_time_wait=10,
|
||
)
|
||
|
||
# Do something with the connection
|
||
|
||
await nc.close()
|
||
```
|
||
{% endtab %}
|
||
|
||
{% tab title="Ruby" %}
|
||
```ruby
|
||
require 'nats/client'
|
||
|
||
NATS.start(servers: ["nats://127.0.0.1:1222", "nats://127.0.0.1:1223", "nats://127.0.0.1:1224"], reconnect_time_wait: 10) do |nc|
|
||
# Do something with the connection
|
||
|
||
# Close the connection
|
||
nc.close
|
||
end
|
||
```
|
||
{% endtab %}
|
||
|
||
{% tab title="TypeScript" %}
|
||
```typescript
|
||
// will throw an exception if connection fails
|
||
let nc = await connect({
|
||
servers: ["nats://demo.nats.io:4222"]
|
||
});
|
||
nc.close();
|
||
```
|
||
{% endtab %}
|
||
{% endtabs %}
|
||
|