RetryQuery will retry a query until it succeeds or a non-retryable error is received.
(dg *dgo.Dgraph, q string)
| 383 | |
| 384 | // RetryQuery will retry a query until it succeeds or a non-retryable error is received. |
| 385 | func RetryQuery(dg *dgo.Dgraph, q string) (*api.Response, error) { |
| 386 | for { |
| 387 | resp, err := dg.NewTxn().Query(context.Background(), q) |
| 388 | if err != nil && (strings.Contains(err.Error(), "Please retry") || |
| 389 | strings.Contains(err.Error(), "connection closed") || |
| 390 | strings.Contains(err.Error(), "broken pipe")) { |
| 391 | // Retry connection issues because some tests (e.g TestSnapshot) are stopping and |
| 392 | // starting alphas. |
| 393 | time.Sleep(10 * time.Millisecond) |
| 394 | continue |
| 395 | } |
| 396 | |
| 397 | return resp, err |
| 398 | } |
| 399 | } |
| 400 | |
| 401 | func RetryAlter(dg *dgo.Dgraph, op *api.Operation) error { |
| 402 | var err error |