Mode:
Duration:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package main
import (
"context"
"fmt"
"time"
"github.com/redis/go-redis/v9"
)
var ctx = context.Background()
func main() {
client := redis.NewClient(&redis.Options{
Addr: "localhost:6379",
})
acquired, err := client.SetNX(
ctx,
"leader-lock",
"instance-1",
10*time.Second,
).Result()
if err != nil {
panic(err)
}
if acquired {
fmt.Println("Leader elected: instance-1")
fmt.Println("Executing scheduled job...")
} else {
fmt.Println("Follower node")
}
}Coding works best on desktop or with an external keyboard.