Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- enqueue :: Connection -> Value a -> [a] -> IO ()
- withDequeue :: Connection -> Value a -> Int -> Int -> ([a] -> IO b) -> IO (Maybe b)
- failures :: Connection -> Value a -> Maybe PayloadId -> Int -> IO [(PayloadId, a)]
- delete :: Connection -> [PayloadId] -> IO ()
- withDequeueWith :: forall e a b. Exception e => Connection -> Value a -> Int -> Int -> ([a] -> IO b) -> IO (Maybe b)
Documentation
:: Connection | Connection |
-> Value a | Payload encoder |
-> [a] | List of payloads to enqueue |
-> IO () |
Enqueue a list of payloads.
:: Connection | Connection |
-> Value a | Payload decoder |
-> Int | Retry count |
-> Int | Element count |
-> ([a] -> IO b) | Continuation |
-> IO (Maybe b) |
Wait for the next payload and process it. If the continuation throws an
exception the payloads are put back in the queue. IOError
is caught
and withDequeue
will retry up to the retry count. If withDequeue
fails
after too many retries the final exception is rethrown. If individual payloads are
are attempted more than the retry count they are set as "failed". See failures
to receive the list of failed payloads.
If the queue is empty withDequeue
return Nothing
. If there are
any entries withDequeue
will wrap the list in Just
.
:: Connection | |
-> Value a | Payload decoder |
-> Maybe PayloadId | Starting position of payloads. Pass |
-> Int | Count |
-> IO [(PayloadId, a)] |
Retrieve the payloads that have entered a failed state. See withDequeue
for how that
occurs. The function returns a list of values and an id. The id is used the starting
place for the next batch of values. If Nothing
is passed the list starts at the
beginning.
:: Exception e | |
=> Connection | Connection |
-> Value a | Payload decoder |
-> Int | Retry count |
-> Int | Element count |
-> ([a] -> IO b) | Continuation |
-> IO (Maybe b) |
A more general configurable version of withDequeue
. Unlike withDequeue
one
can specify the exception that causes a retry. Additionally event
handlers can be specified to observe the internal behavior of the
retry loop.