Improve reconnection policy and context handling in Queryx

This commit is contained in:
Fuad Hasan
2025-01-29 14:40:13 +06:00
committed by Sylwia Szunejko
parent 2f79f86b7c
commit fd84cf32de
2 changed files with 7 additions and 0 deletions

View File

@@ -51,6 +51,10 @@ func CreateCluster() *gocql.ClusterConfig {
cluster.Timeout = *flagTimeout
cluster.Consistency = gocql.Quorum
cluster.MaxWaitSchemaAgreement = 2 * time.Minute // travis might be slow
cluster.ReconnectionPolicy = &gocql.ConstantReconnectionPolicy{
MaxRetries: 10,
Interval: 3 * time.Second,
}
if *flagRetry > 0 {
cluster.RetryPolicy = &gocql.SimpleRetryPolicy{NumRetries: *flagRetry}
}

View File

@@ -86,6 +86,9 @@ func (q *Queryx) RoutingKey(routingKey []byte) *Queryx {
// query, queries will be canceled and return once the context is
// canceled.
func (q *Queryx) WithContext(ctx context.Context) *Queryx {
if ctx == nil {
ctx = context.Background()
}
q.Query = q.Query.WithContext(ctx)
return q
}