connect to remote grains if not found
All checks were successful
Build and Publish / BuildAndDeploy (push) Successful in 1m51s

This commit is contained in:
matst80
2024-11-10 16:58:52 +01:00
parent 5e1e9e7c84
commit 15d966aaad

View File

@@ -114,22 +114,22 @@ func (p *RemoteGrainPool) findRemoteGrain(id CartId) *RemoteGrain {
return grain
}
// func (p *RemoteGrainPool) findOrCreateGrain(id CartId) *RemoteGrain {
// grain := p.findRemoteGrain(id)
// if grain == nil {
// grain = NewRemoteGrain(id, p.Host)
// p.mu.Lock()
// p.grains[id] = grain
// p.mu.Unlock()
// grain.Connect()
// }
// return grain
// }
func (p *RemoteGrainPool) findOrCreateGrain(id CartId) *RemoteGrain {
grain := p.findRemoteGrain(id)
if grain == nil {
grain = NewRemoteGrain(id, p.Host)
p.mu.Lock()
p.grains[id] = grain
p.mu.Unlock()
grain.Connect()
}
return grain
}
func (p *RemoteGrainPool) Process(id CartId, messages ...Message) ([]byte, error) {
var result []byte
var err error
grain := p.findRemoteGrain(id)
grain := p.findOrCreateGrain(id)
if grain == nil {
return nil, fmt.Errorf("grain not found")
}
@@ -140,7 +140,7 @@ func (p *RemoteGrainPool) Process(id CartId, messages ...Message) ([]byte, error
}
func (p *RemoteGrainPool) Get(id CartId) ([]byte, error) {
grain := p.findRemoteGrain(id)
grain := p.findOrCreateGrain(id)
if grain == nil {
return nil, fmt.Errorf("grain not found")
}