Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Этот коммит содержится в:
Eli Yukelzon
2020-10-15 18:01:16 +03:00
коммит произвёл GitHub
родитель 944841a237
Коммит 8844141df3
15 изменённых файлов: 686 добавлений и 10 удалений

Просмотреть файл

@@ -7642,6 +7642,26 @@ func (s *RetryLayerTermsOfServiceStore) Save(termsOfService *model.TermsOfServic
}
func (s *RetryLayerThreadStore) CreateMembershipIfNeeded(userId string, postId string) error {
tries := 0
for {
err := s.ThreadStore.CreateMembershipIfNeeded(userId, postId)
if err == nil {
return nil
}
if !isRepeatableError(err) {
return err
}
tries++
if tries >= 3 {
err = errors.Wrap(err, "giving up after 3 consecutive repeatable transaction failures")
return err
}
}
}
func (s *RetryLayerThreadStore) Delete(postId string) error {
tries := 0
@@ -7662,6 +7682,26 @@ func (s *RetryLayerThreadStore) Delete(postId string) error {
}
func (s *RetryLayerThreadStore) DeleteMembershipForUser(userId string, postId string) error {
tries := 0
for {
err := s.ThreadStore.DeleteMembershipForUser(userId, postId)
if err == nil {
return nil
}
if !isRepeatableError(err) {
return err
}
tries++
if tries >= 3 {
err = errors.Wrap(err, "giving up after 3 consecutive repeatable transaction failures")
return err
}
}
}
func (s *RetryLayerThreadStore) Get(id string) (*model.Thread, error) {
tries := 0
@@ -7682,6 +7722,46 @@ func (s *RetryLayerThreadStore) Get(id string) (*model.Thread, error) {
}
func (s *RetryLayerThreadStore) GetMembershipForUser(userId string, postId string) (*model.ThreadMembership, error) {
tries := 0
for {
result, err := s.ThreadStore.GetMembershipForUser(userId, postId)
if err == nil {
return result, nil
}
if !isRepeatableError(err) {
return result, err
}
tries++
if tries >= 3 {
err = errors.Wrap(err, "giving up after 3 consecutive repeatable transaction failures")
return result, err
}
}
}
func (s *RetryLayerThreadStore) GetMembershipsForUser(userId string) ([]*model.ThreadMembership, error) {
tries := 0
for {
result, err := s.ThreadStore.GetMembershipsForUser(userId)
if err == nil {
return result, nil
}
if !isRepeatableError(err) {
return result, err
}
tries++
if tries >= 3 {
err = errors.Wrap(err, "giving up after 3 consecutive repeatable transaction failures")
return result, err
}
}
}
func (s *RetryLayerThreadStore) Save(thread *model.Thread) (*model.Thread, error) {
tries := 0
@@ -7702,6 +7782,26 @@ func (s *RetryLayerThreadStore) Save(thread *model.Thread) (*model.Thread, error
}
func (s *RetryLayerThreadStore) SaveMembership(membership *model.ThreadMembership) (*model.ThreadMembership, error) {
tries := 0
for {
result, err := s.ThreadStore.SaveMembership(membership)
if err == nil {
return result, nil
}
if !isRepeatableError(err) {
return result, err
}
tries++
if tries >= 3 {
err = errors.Wrap(err, "giving up after 3 consecutive repeatable transaction failures")
return result, err
}
}
}
func (s *RetryLayerThreadStore) SaveMultiple(thread []*model.Thread) ([]*model.Thread, int, error) {
tries := 0
@@ -7742,6 +7842,26 @@ func (s *RetryLayerThreadStore) Update(thread *model.Thread) (*model.Thread, err
}
func (s *RetryLayerThreadStore) UpdateMembership(membership *model.ThreadMembership) (*model.ThreadMembership, error) {
tries := 0
for {
result, err := s.ThreadStore.UpdateMembership(membership)
if err == nil {
return result, nil
}
if !isRepeatableError(err) {
return result, err
}
tries++
if tries >= 3 {
err = errors.Wrap(err, "giving up after 3 consecutive repeatable transaction failures")
return result, err
}
}
}
func (s *RetryLayerTokenStore) Cleanup() {
s.TokenStore.Cleanup()