quantum-elixir / quantum-elixir/quantum-core
multiple apps in libcluster, quantum does not identifies which node to select
Nobody has claimed this yet.
- Dominant language
- Elixir
- Stars
- 2.4k
- Forks
- 154
- Avg merge
- 2h 22m
- Merged PRs (30d)
- 3
Description
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(app@10.21.73.141)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
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with lib/quantum/run_strategy/random.ex at line 46 and compare the nodes selected by Quantum with the applications shown in Node.list. Reproduce the scheduler setup using the reported api-server and intergation-server nodes, then determine whether selection can be limited to the intended application; done should demonstrate that scheduled jobs no longer run on unintended nodes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- elixir
- Domain
- distributed-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100