diff options
Diffstat (limited to 'hsm-dummy-poller')
-rw-r--r-- | hsm-dummy-poller/Main.hs | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/hsm-dummy-poller/Main.hs b/hsm-dummy-poller/Main.hs index bc60c7c..8e6908b 100644 --- a/hsm-dummy-poller/Main.hs +++ b/hsm-dummy-poller/Main.hs @@ -23,7 +23,7 @@ data Env = Env { name :: Text , subEps :: [Text] , topics :: [Text] - , period :: Int + , period :: Word } $(deriveFromYaml ''Env) @@ -32,16 +32,18 @@ handle :: (Concurrent :> es, Log :> es, Reader Env :> es) => S.Stream (Eff es) [ByteString] -> Eff es () -handle = - S.fold S.drain . S.mapM (\ps -> asks period >>= threadDelay >> handler ps) +handle = S.fold S.drain . S.mapM handler where receiverDomain = "receiver" - handler [] = localDomain receiverDomain $ logInfo_ "No pulse received yet" - handler ps = - forM_ ps $ \p -> - localDomain receiverDomain - $ logInfo_ - $ "Received pulse #" <> pack (show $ body @Int p) + delay = asks period >>= threadDelay . fromIntegral + handler [] = do + localDomain receiverDomain $ logInfo_ "No pulse received yet" + delay + handler ps = do + localDomain receiverDomain + $ forM_ ps + $ logInfo_ . mappend "Received pulse #" . pack . show . body @Word + delay -- Dummy poller service: -- Proof of concept. Polls for "pulses" through ZMQ at a set interval and |