packages feed

faktory-1.1.2.5: examples/producer/Main.hs

module Main (main) where

import Prelude

import Control.Exception.Safe
import Data.Aeson
import Faktory.Job (perform)
import Faktory.Producer
import GHC.Generics
import System.Environment (getArgs)

-- | Must match examples/consumer
newtype Job = Job {jobMessage :: String}
  deriving stock (Generic)
  deriving anyclass (ToJSON)

main :: IO ()
main = bracket newProducerEnv closeProducer $ \producer -> do
  args <- getArgs
  jobId <- perform mempty producer Job {jobMessage = unwords args}

  putStrLn $ "Pushed job: " <> show jobId