func RetryOnConnectFailure(ctx context.Context, req Request, retryCount int, err error) (bool, error) {
	if err == nil {
		return false, nil
	}
	e := errors.Parse(err.Error())
	if e == nil {
		return false, nil
	}
	if strings.Contains(e.Detail, "connection refused") {
		return true, nil
	}
	return false, nil
}
RetryOnConnectFailure will return true if "connection refused" is returned
package client
import (
	"context"
	"strings"
	"github.com/micro/micro/v3/service/errors"
)
type RetryFunc func(ctx context.Context, req Request, retryCount int, err error) (bool, error)
func RetryAlways(ctx context.Context, req Request, retryCount int, err error) (bool, error) {
	return true, nil
}
func RetryOnError(ctx context.Context, req Request, retryCount int, err error) (bool, error) {
	if err == nil {
		return false, nil
	}
	e := errors.Parse(err.Error())
	if e == nil {
		return false, nil
	}
	switch e.Code {
	case 408, 500:
		return true, nil
	default:
		return false, nil
	}
}