github.com/altipla-consulting/ravendb-go-client@v0.1.3/subscription_worker_options.go (about)

     1  package ravendb
     2  
     3  import "time"
     4  
     5  // SubscriptionWorkerOptions describes options for subscription worker
     6  type SubscriptionWorkerOptions struct {
     7  	SubscriptionName                string                      `json:"SubscriptionName"`
     8  	TimeToWaitBeforeConnectionRetry Duration                    `json:"TimeToWaitBeforeConnectionRetry"`
     9  	IgnoreSubscriberErrors          bool                        `json:"IgnoreSubscriberErrors"`
    10  	Strategy                        SubscriptionOpeningStrategy `json:"Strategy"`
    11  	MaxDocsPerBatch                 int                         `json:"MaxDocsPerBatch"`
    12  	MaxErroneousPeriod              Duration                    `json:"MaxErroneousPeriod"`
    13  	CloseWhenNoDocsLeft             bool                        `json:"CloseWhenNoDocsLeft"`
    14  }
    15  
    16  // NewSubscriptionWorkerOptions returns new SubscriptionWorkerOptions
    17  func NewSubscriptionWorkerOptions(subscriptionName string) *SubscriptionWorkerOptions {
    18  	panicIf(subscriptionName == "", "SubscriptionName cannot be null or empty")
    19  	return &SubscriptionWorkerOptions{
    20  		Strategy:                        SubscriptionOpeningStrategyOpenIfFree,
    21  		MaxDocsPerBatch:                 4096,
    22  		TimeToWaitBeforeConnectionRetry: Duration(time.Second * 5),
    23  		MaxErroneousPeriod:              Duration(time.Minute * 5),
    24  		SubscriptionName:                subscriptionName,
    25  	}
    26  }