packages feed

faktory-1.0.0.0: examples/producer/Main.hs

module Main (main) where

import Prelude

import Control.Exception.Safe
import Data.Aeson
import Data.Semigroup ((<>))
import Faktory.Client
import Faktory.Job (perform)
import Faktory.Settings
import GHC.Generics
import System.Environment (getArgs)

-- | Must match examples/consumer
newtype Job = Job { jobMessage :: String }
  deriving Generic
instance ToJSON Job

main :: IO ()
main = do
  settings <- envSettings
  bracket (newClient settings Nothing) closeClient $ \client -> do
    args <- getArgs
    jobId <- perform mempty client Job {jobMessage = unwords args}

    putStrLn $ "Pushed job: " <> show jobId