File tree Expand file tree Collapse file tree 1 file changed +5
-2
lines changed Expand file tree Collapse file tree 1 file changed +5
-2
lines changed Original file line number Diff line number Diff line change @@ -28,7 +28,7 @@ import Data.Int (toNumber, round)
2828import Data.Maybe (Maybe (..), maybe )
2929import Data.Nullable (Nullable (), toNullable )
3030import DOM.XHR (XMLHttpRequest ())
31- import Math (pow )
31+ import Math (max , pow )
3232import Network.HTTP.Affjax.Request
3333import Network.HTTP.Affjax.Response
3434import Network.HTTP.Method (Method (..), methodToString )
@@ -148,14 +148,17 @@ retry milliseconds run req = do
148148 StatusCode 200 -> Right resp
149149 _ -> Left resp
150150
151+ -- maximum delay in milliseconds
152+ maxDelay = 30.0 * 1000.0
153+
151154 go failureVar n = do
152155 result <- run req
153156 case assert200 result of
154157 Right b -> pure b
155158 Left resp -> do
156159 putVar failureVar resp
157160 -- TODO: is this too steep?
158- let delay = round $ toNumber 1000 * pow (toNumber 2 ) ( toNumber (n - 1 ))
161+ let delay = round $ max maxDelay $ 1000.0 * ( pow 2.0 $ toNumber (n - 1 ))
159162 later' delay $ go failureVar (n + 1 )
160163
161164-- | Run a request directly without using `Aff`.
You can’t perform that action at this time.
0 commit comments