Commit 3d954f25 authored by Przemyslaw Kaminski's avatar Przemyslaw Kaminski

[ngrams] refactoring of job log functions

parent ec4c006c
...@@ -130,6 +130,7 @@ import Gargantext.Database.Action.Metrics.NgramsByNode (getOccByNgramsOnlyFast') ...@@ -130,6 +130,7 @@ import Gargantext.Database.Action.Metrics.NgramsByNode (getOccByNgramsOnlyFast')
import Gargantext.Database.Admin.Config (userMaster) import Gargantext.Database.Admin.Config (userMaster)
import Gargantext.Database.Admin.Types.Node (NodeType(..)) import Gargantext.Database.Admin.Types.Node (NodeType(..))
import Gargantext.Database.Prelude (HasConnectionPool, HasConfig) import Gargantext.Database.Prelude (HasConnectionPool, HasConfig)
import Gargantext.Database.Query.Table.Node.Error (HasNodeError)
import Gargantext.Database.Query.Table.Node.Select import Gargantext.Database.Query.Table.Node.Select
import Gargantext.Database.Query.Table.Ngrams hiding (NgramsType(..), ngrams, ngramsType, ngrams_terms) import Gargantext.Database.Query.Table.Ngrams hiding (NgramsType(..), ngrams, ngramsType, ngrams_terms)
import Gargantext.Database.Query.Table.Node.Error (HasNodeError) import Gargantext.Database.Query.Table.Node.Error (HasNodeError)
...@@ -350,6 +351,7 @@ tableNgramsPut tabType listId (Versioned p_version p_table) ...@@ -350,6 +351,7 @@ tableNgramsPut tabType listId (Versioned p_version p_table)
tableNgramsPostChartsAsync :: ( FlowCmdM env err m tableNgramsPostChartsAsync :: ( FlowCmdM env err m
, HasNodeError err
, HasSettings env , HasSettings env
) )
=> UpdateTableNgramsCharts => UpdateTableNgramsCharts
......
module Gargantext.Prelude.Job where module Gargantext.Prelude.Job where
import Control.Monad.IO.Class (liftIO, MonadIO)
import Data.IORef import Data.IORef
import Data.Maybe import Data.Maybe
...@@ -35,17 +36,18 @@ jobLogFail (JobLog { _scst_succeeded = mSucc ...@@ -35,17 +36,18 @@ jobLogFail (JobLog { _scst_succeeded = mSucc
, _scst_failed = (+ 1) <$> mFail , _scst_failed = (+ 1) <$> mFail
, _scst_events = evt } , _scst_events = evt }
runJobLog :: Int -> (JobLog -> IO ()) -> IO (IO (), IO (), IO JobLog) runJobLog :: MonadIO io => Int -> (JobLog -> io ()) -> io (io (), io (), io JobLog)
runJobLog num logStatus = do runJobLog num logStatus = do
jlRef <- newIORef $ jobLogInit num jlRef <- liftIO $ newIORef $ jobLogInit num
let logRef = do return (logRefF jlRef, logRefSuccessF jlRef, getRefF jlRef)
jl <- readIORef jlRef
logStatus jl
let logRefSuccess = do
jl <- readIORef jlRef
writeIORef $ jobLogSuccess jl
let getRef = do
readIORef jlRef
return (logRef, logRefSuccess, getRef) where
logRefF ref = do
jl <- liftIO $ readIORef ref
logStatus jl
logRefSuccessF ref = do
jl <- liftIO $ readIORef ref
liftIO $ writeIORef ref $ jobLogSuccess jl
getRefF ref = do
liftIO $ readIORef ref
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment