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

[ngrams] refactoring of job log functions

parent ec4c006c
Pipeline #1185 canceled with stage
...@@ -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 where
let logRefSuccess = do logRefF ref = do
jl <- readIORef jlRef jl <- liftIO $ readIORef ref
writeIORef $ jobLogSuccess jl logStatus jl
let getRef = do logRefSuccessF ref = do
readIORef jlRef jl <- liftIO $ readIORef ref
liftIO $ writeIORef ref $ jobLogSuccess jl
return (logRef, logRefSuccess, getRef) 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