mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-11-02 16:52:25 -06:00 
			
		
		
		
	
		
			
	
	
		
			53 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
		
		
			
		
	
	
			53 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * Copyright 2019 gRPC authors.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * Licensed under the Apache License, Version 2.0 (the "License");
							 | 
						||
| 
								 | 
							
								 * you may not use this file except in compliance with the License.
							 | 
						||
| 
								 | 
							
								 * You may obtain a copy of the License at
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 *     http://www.apache.org/licenses/LICENSE-2.0
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * Unless required by applicable law or agreed to in writing, software
							 | 
						||
| 
								 | 
							
								 * distributed under the License is distributed on an "AS IS" BASIS,
							 | 
						||
| 
								 | 
							
								 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
							 | 
						||
| 
								 | 
							
								 * See the License for the specific language governing permissions and
							 | 
						||
| 
								 | 
							
								 * limitations under the License.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// Package backoff provides configuration options for backoff.
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								// More details can be found at:
							 | 
						||
| 
								 | 
							
								// https://github.com/grpc/grpc/blob/master/doc/connection-backoff.md.
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								// All APIs in this package are experimental.
							 | 
						||
| 
								 | 
							
								package backoff
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import "time"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// Config defines the configuration options for backoff.
							 | 
						||
| 
								 | 
							
								type Config struct {
							 | 
						||
| 
								 | 
							
									// BaseDelay is the amount of time to backoff after the first failure.
							 | 
						||
| 
								 | 
							
									BaseDelay time.Duration
							 | 
						||
| 
								 | 
							
									// Multiplier is the factor with which to multiply backoffs after a
							 | 
						||
| 
								 | 
							
									// failed retry. Should ideally be greater than 1.
							 | 
						||
| 
								 | 
							
									Multiplier float64
							 | 
						||
| 
								 | 
							
									// Jitter is the factor with which backoffs are randomized.
							 | 
						||
| 
								 | 
							
									Jitter float64
							 | 
						||
| 
								 | 
							
									// MaxDelay is the upper bound of backoff delay.
							 | 
						||
| 
								 | 
							
									MaxDelay time.Duration
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// DefaultConfig is a backoff configuration with the default values specfied
							 | 
						||
| 
								 | 
							
								// at https://github.com/grpc/grpc/blob/master/doc/connection-backoff.md.
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								// This should be useful for callers who want to configure backoff with
							 | 
						||
| 
								 | 
							
								// non-default values only for a subset of the options.
							 | 
						||
| 
								 | 
							
								var DefaultConfig = Config{
							 | 
						||
| 
								 | 
							
									BaseDelay:  1.0 * time.Second,
							 | 
						||
| 
								 | 
							
									Multiplier: 1.6,
							 | 
						||
| 
								 | 
							
									Jitter:     0.2,
							 | 
						||
| 
								 | 
							
									MaxDelay:   120 * time.Second,
							 | 
						||
| 
								 | 
							
								}
							 |