multiple apps in libcluster, quantum does not identifies which node to select
Hi there, I have few applications running in cluster which able to call each other
Assume I have apps api-server, intergation-server
I have quantum used in app intergation-server
I have few nodes of api-server and few nodes intergation-server
in intergation-server config, I have settings in config
config :intergation-server, IntergationServer.Scheduler,
timeout: :infinity,
overlap: false,
global: true,
jobs: [
{"1 * * * *", ... } <- Every hour
...
]
Nodes visible in :intergation-server:
Node.self
:"app@**.**.**.**1"
iex([email protected])7> Node.list
[
:"app@**.**.**.**2" # <- node of :intergation-server
:"app@**-**-**-***.api.pod.cluster.local", # <- node of :api-server
:"app@**-**-**-***.api.pod.cluster.local", # <- node of :api-server
:"app@**-**-**-***.api.pod.cluster.local" # <- node of :api-server
]
I can see job (for application intergation-server) is triggering once in few hours, I assume nodes of another application (api-server) included in when Quantum.RunStrategy.Random select node to run
Node list gets all nodes available: https://github.com/quantum-elixir/quantum-core/blob/main/lib/quantum/run_strategy/random.ex#L46
That is correct. We can’t differentiate the nodes.
If you have a good idea how to do that, please open a PR. Otherwise you‘ll have to implement a custom strategy for your project that chooses from the correct nodes.
Btw: The option global no longer exists.
I ll add PR (implemented custom strategy, will add PR in process how to do it in Random)
global should be removed from documentation in this case