Handle concurrency issues in a simple way.

This commit is contained in:
yoan
2024-10-23 17:32:35 +08:00
parent 1dca6ecf8d
commit 7ab8517a93
2 changed files with 34 additions and 8 deletions

View File

@@ -318,6 +318,12 @@ func getReg(client *lego.Client, sslProvider *SSLProviderConfig, user *ApplyUser
repo := getAcmeAccountRepository()
resp, err := repo.GetByCAAndEmail(sslProvider.Provider, user.GetEmail())
if err == nil {
user.key = resp.Key
return resp.Resource, nil
}
if err := repo.Save(sslProvider.Provider, user.GetEmail(), user.getPrivateKeyString(), reg); err != nil {
return nil, fmt.Errorf("failed to save registration: %w", err)
}