yesod-job-queue 0.2.0.0 → 0.2.0.1
raw patch · 5 files changed
+31/−8 lines, 5 filesbuild-type:Customsetup-changed
Files
- Setup.hs +17/−2
- Yesod/JobQueue.hs +7/−3
- app/dist/app.bundle.js too large to diff
- example/Main.hs +4/−1
- yesod-job-queue.cabal +3/−2
Setup.hs view
@@ -1,2 +1,17 @@-import Distribution.Simple-main = defaultMain+import Distribution.PackageDescription (PackageDescription(extraSrcFiles))+import Distribution.Simple (UserHooks(buildHook))+import qualified Distribution.Simple as DS+import Distribution.Simple.LocalBuildInfo (LocalBuildInfo)+import Distribution.Simple.Setup (BuildFlags)+import qualified System.Process as Proc+import qualified System.Directory as Dir+import Control.Monad (when, void)++buildHook' :: PackageDescription -> LocalBuildInfo -> UserHooks -> BuildFlags -> IO ()+buildHook' packageDesc localBuildInfo userHooks buildFlags = do+ exists <- Dir.doesFileExist "./app/dist/app.bundle.js"+ when (not exists) $ void $ Proc.system "cd app && npm install && npm run build-js"+ (buildHook DS.simpleUserHooks) packageDesc localBuildInfo userHooks buildFlags++main :: IO ()+main = DS.defaultMainWithHooks DS.simpleUserHooks{buildHook = buildHook'}
Yesod/JobQueue.hs view
@@ -87,6 +87,10 @@ -- | Job Handler runJob :: (MonadBaseControl IO m, MonadIO m) => master -> JobType master -> ReaderT master m ()++ -- | connection info for redis+ queueConnectInfo :: master -> R.ConnectInfo+ queueConnectInfo _ = R.defaultConnectInfo -- | queue key name for redis queueKey :: master -> ByteString@@ -125,7 +129,7 @@ startThread :: (YesodJobQueue master, MonadBaseControl IO m, MonadIO m) => master -> ThreadNum -> m () startThread m tNo = do liftIO $ forkIO $ do- conn <- R.connect R.defaultConnectInfo+ conn <- R.connect $ queueConnectInfo m R.runRedis conn $ do forever $ do emr <- R.blpop [queueKey m] 600@@ -156,7 +160,7 @@ enqueue m jt = do time <- getCurrentTime let item = JobQueueItem (show jt) time- conn <- liftIO $ R.connect R.defaultConnectInfo+ conn <- liftIO $ R.connect $ queueConnectInfo m R.runRedis conn $ do R.rpush (queueKey m) [BSC.pack $ show item] return ()@@ -164,7 +168,7 @@ -- | Get all job in the queue listQueue :: YesodJobQueue master => master -> IO (Either String [JobQueueItem]) listQueue m = do- conn <- R.connect R.defaultConnectInfo+ conn <- R.connect $ queueConnectInfo m exs <- R.runRedis conn $ do R.lrange (queueKey m) 0 (-1) case exs of
app/dist/app.bundle.js view
file too large to diff
example/Main.hs view
@@ -7,7 +7,7 @@ import Database.Persist.Sqlite --import Control.Monad.Trans.Resource (runResourceT) import Control.Monad.Logger (runStderrLoggingT)-+-- import qualified Database.Redis as R -- Yesod Persist settings (Nothing special here) share [mkPersist sqlSettings, mkMigrate "migrateAll"] [persistLowerCase|@@ -57,6 +57,9 @@ putStrLn "send norification!" getClassInformation app = [jobQueueInfo app, schedulerInfo app] -- jobManagerJSUrl _ = "http://localhost:3001/dist/app.bundle.js" -- use for development with "npm run bs"+ -- queueConnectInfo _ = R.defaultConnectInfo+ -- {R.connectHost = "127.0.0.1"+ -- , R.connectPort = R.PortNumber 6379} instance YesodJobQueueScheduler App where getJobSchedules _ = [("* * * * *", AggregationUser)
yesod-job-queue.cabal view
@@ -1,5 +1,5 @@ name: yesod-job-queue-version: 0.2.0.0+version: 0.2.0.1 synopsis: Background jobs library for Yesod. description: Background jobs library for Yesod@@ -17,7 +17,7 @@ maintainer: nakaji.dayo@gmail.com copyright: 2016 Daishi Nakajima category: Web-build-type: Simple+build-type: Custom extra-source-files: app/dist/app.bundle.js cabal-version: >=1.10 @@ -84,6 +84,7 @@ , resourcet , monad-logger , classy-prelude-yesod+ , hedis ghc-options: -threaded -O2 -rtsopts -with-rtsopts=-N default-language: Haskell2010