wasp icon indicating copy to clipboard operation
wasp copied to clipboard

How does RetryPolicy work?

Open nologinatgit opened this issue 10 years ago • 1 comments

I have the following interface:

  @GET("/information")
  @RetryPolicy(timeout = 10000)
  void GetInformation(Callback> callback);

This is my setup:

myService = new Wasp.Builder(MainActivity.this)
        .setEndpoint(BASE_API_URL)
        .build()
        .create(IMyService.class);

I call it like this:

 myService .GetInformation(new Callback>()
        {
          @Override
          public void onSuccess(Response response, List informations)
          {
            Log.w("DEBUG", "Success");            
          }

          @Override
          public void onError(WaspError error)
          {
            Log.w("DEBUG", error);
          }
        });`

Sometimes I get this back:

 Wasp Error:  Status Code: 0 Url http://mysite.com/api/information
     at com.orhanobut.wasp.VolleyNetworkStack$VolleyListener.onErrorResponse(VolleyNetworkStack.java:171)
     at com.android.volley.Request.deliverError(Request.java:590)
     at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:101)
     at android.os.Handler.handleCallback(Handler.java:615)
     at android.os.Handler.dispatchMessage(Handler.java:92)
     at android.os.Looper.loop(Looper.java:137)
     at android.app.ActivityThread.main(ActivityThread.java:4802)
     at java.lang.reflect.Method.invokeNative(Native Method)
     at java.lang.reflect.Method.invoke(Method.java:511)
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:813)
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:580)
     at dalvik.system.NativeStart.main(Native Method)

What does code 0 mean? If I set the retry policy, shouldn't it retry a few times? How should I set it? The Wiki is very thin.

nologinatgit avatar Oct 24 '15 00:10 nologinatgit

Error information indeed doesn't contain enough information about what happened. We have an open issue for improving. You also need to add other values, currently you only set timeout.

@RetryPolicy(timeout = 10000, maxNumRetries=3, backoffMultiplier=0.75)

On the other hand, default values are set if they are null. In your case it should retry 3 times but I also don't know the reason, usually status code=0 is returned when there is no connection established.

I'll try to spare some time to improve wasperror in order to provide much better information.

orhanobut avatar Oct 28 '15 15:10 orhanobut