packages feed

azure-servicebus-0.1.6.0: examples/QueueExample.hs

module Main where

import Network.MicrosoftAzure.ServiceBus.Queue
import Network.MicrosoftAzure.ServiceBus
import qualified Data.ByteString.Char8 as C
import Network(withSocketsDo)

queueName = "QUEUE-NAME"
sbNamespace = "sb-namespace"
sbIssuerKey = C.pack "somekey23823872="
sbIssuerName = C.pack "owner"

sbinfo = SBInfo sbNamespace sbIssuerName sbIssuerKey
message1 = C.pack "Hello from Haskell"
message2 = C.pack "Haskell Rocks"

main = do
  sbContext <- sbContext sbinfo
  enQueueBS queueName message1 sbContext
  -- Enqueued message 1 to queue
  res <- deQueue queueName 30 sbContext
  -- Dequeued it
  print res
  -- Enqueue it again
  enQueueBS queueName message1 sbContext
  -- EnQueue Another Message
  enQueueBS queueName message2 sbContext
  -- Peek Lock on the first message
  (lockInfo,msgFromQueue) <- peekLockQueue queueName 50 sbContext
  -- Now a deQueue would result in us getting the second message (while the first is still in the queue)
  res3 <- deQueue queueName 10 sbContext
  print res3
  -- renew lock
  renewLock lockInfo sbContext
  -- delete the message
  deleteMessage lockInfo sbContext