fix(server): use a new db worker for hot updates (#2581)

Co-authored-by: knqyf263 <knqyf263@gmail.com>
This commit is contained in:
afdesk
2022-07-25 20:26:08 +06:00
committed by GitHub
parent 769ed554b0
commit fa8a8ba7dc

View File

@@ -149,15 +149,16 @@ func (c *Client) Download(ctx context.Context, dst string) error {
log.Logger.Debug("no metadata file")
}
if err := c.populateOCIArtifact(); err != nil {
art, err := c.initOCIArtifact()
if err != nil {
return xerrors.Errorf("OCI artifact error: %w", err)
}
if err := c.artifact.Download(ctx, db.Dir(dst)); err != nil {
if err = art.Download(ctx, db.Dir(dst)); err != nil {
return xerrors.Errorf("database download error: %w", err)
}
if err := c.updateDownloadedAt(dst); err != nil {
if err = c.updateDownloadedAt(dst); err != nil {
return xerrors.Errorf("failed to update downloaded_at: %w", err)
}
return nil
@@ -182,14 +183,15 @@ func (c *Client) updateDownloadedAt(dst string) error {
return nil
}
func (c *Client) populateOCIArtifact() error {
if c.artifact == nil {
repo := fmt.Sprintf("%s:%d", c.dbRepository, db.SchemaVersion)
art, err := oci.NewArtifact(repo, dbMediaType, c.quiet, c.insecureSkipTLSVerify)
if err != nil {
return xerrors.Errorf("OCI artifact error: %w", err)
}
c.artifact = art
func (c *Client) initOCIArtifact() (*oci.Artifact, error) {
if c.artifact != nil {
return c.artifact, nil
}
return nil
repo := fmt.Sprintf("%s:%d", c.dbRepository, db.SchemaVersion)
art, err := oci.NewArtifact(repo, dbMediaType, c.quiet, c.insecureSkipTLSVerify)
if err != nil {
return nil, xerrors.Errorf("OCI artifact error: %w", err)
}
return art, nil
}