redis_service_manager v3.1.1
Redis Service Manager
Maintains a list of services in a cluster and tracks their ready state after a rebalance. For use in crystal lang projects.
Installation
-
Add the dependency to your
shard.yml
:dependencies: redis_service_manager: github: place-labs/redis_service_manager
-
Run
shards install
Usage
require "redis_service_manager"
# TTL should be number > 3 that is not divisible by 3 to account for process load
# the manager will check-in with the cluster every `ttl // 3` seconds
manager = RedisServiceManager.new("service_name", "http://service:1234/location", redis: "redis://localhost:6379", ttl: 4)
# a rebalancing event occurs when a change to the cluster is detected
# the cluster will only become ready once all nodes have marked themselves as ready
# so make sure you call ready (critical function)
manager.on_rebalance do |version, nodes|
puts "REBALANCING"
manager.ready(version)
end
# this callback is only fired on the cluster leader
manager.on_cluster_ready do |version|
puts "CLUSTER READY"
end
manager.start
Repository
redis_service_manager
Owner
Statistic
- 1
- 0
- 0
- 4
- 2
- 4 months ago
- April 17, 2021
License
MIT License
Links
Synced at
Sat, 07 Sep 2024 21:38:11 GMT
Languages