|
|
|
@ -18,20 +18,27 @@ import Colog (LogAction, cfilter, |
|
|
|
import Colog.Actions (logTextHandle) |
|
|
|
import Colog.Actions (logTextHandle) |
|
|
|
import Config (TransaqConnectorConfig (..), |
|
|
|
import Config (TransaqConnectorConfig (..), |
|
|
|
loadConfig) |
|
|
|
loadConfig) |
|
|
|
import Control.Concurrent (threadDelay) |
|
|
|
import Control.Concurrent (killThread, |
|
|
|
|
|
|
|
threadDelay) |
|
|
|
import Control.Concurrent.BoundedChan (newBoundedChan) |
|
|
|
import Control.Concurrent.BoundedChan (newBoundedChan) |
|
|
|
import Control.Exception (bracket) |
|
|
|
import Control.Exception (bracket) |
|
|
|
import Control.Monad (forever, void) |
|
|
|
import Control.Monad (forever, void) |
|
|
|
import Control.Monad.IO.Class (MonadIO) |
|
|
|
import Control.Monad.IO.Class (MonadIO) |
|
|
|
import qualified Data.Text as T |
|
|
|
import qualified Data.Text as T |
|
|
|
import Data.Version (showVersion) |
|
|
|
import Data.Version (showVersion) |
|
|
|
import Debug.EventCounters (initEventCounters) |
|
|
|
import Debug.EventCounters (emitEvent, |
|
|
|
|
|
|
|
initEventCounters) |
|
|
|
import HistoryProviderServer (withHistoryProviderServer) |
|
|
|
import HistoryProviderServer (withHistoryProviderServer) |
|
|
|
import Network.URI (parseURI) |
|
|
|
import Network.URI (parseURI) |
|
|
|
import Prelude hiding (log) |
|
|
|
import Prelude hiding (log) |
|
|
|
import System.IO (Handle, |
|
|
|
import System.IO (Handle, |
|
|
|
IOMode (AppendMode), |
|
|
|
IOMode (AppendMode), |
|
|
|
withFile) |
|
|
|
withFile) |
|
|
|
|
|
|
|
import System.Metrics (newStore) |
|
|
|
|
|
|
|
import System.Remote.Monitoring.Statsd (StatsdOptions (..), |
|
|
|
|
|
|
|
defaultStatsdOptions, |
|
|
|
|
|
|
|
forkStatsd, |
|
|
|
|
|
|
|
statsdThreadId) |
|
|
|
import System.ZMQ4 (withContext) |
|
|
|
import System.ZMQ4 (withContext) |
|
|
|
import TickerInfoServer (withTickerInfoServer) |
|
|
|
import TickerInfoServer (withTickerInfoServer) |
|
|
|
import qualified TXMLConnector as Connector |
|
|
|
import qualified TXMLConnector as Connector |
|
|
|
@ -49,8 +56,11 @@ parseLoglevel _ = Trace |
|
|
|
|
|
|
|
|
|
|
|
main :: IO () |
|
|
|
main :: IO () |
|
|
|
main = do |
|
|
|
main = do |
|
|
|
initEventCounters |
|
|
|
|
|
|
|
cfg <- loadConfig "transaq-connector.dhall" |
|
|
|
cfg <- loadConfig "transaq-connector.dhall" |
|
|
|
|
|
|
|
store <- newStore |
|
|
|
|
|
|
|
initEventCounters store |
|
|
|
|
|
|
|
statsdThread <- forkStatsd (defaultStatsdOptions { host = statsdHost cfg, port = statsdPort cfg, prefix = "transaq_connector"}) store |
|
|
|
|
|
|
|
|
|
|
|
let loglevel = parseLoglevel (logLevel cfg) |
|
|
|
let loglevel = parseLoglevel (logLevel cfg) |
|
|
|
withFile "transaq-connector.log" AppendMode $ \logH -> do |
|
|
|
withFile "transaq-connector.log" AppendMode $ \logH -> do |
|
|
|
let logger = mkLogger logH loglevel |
|
|
|
let logger = mkLogger logH loglevel |
|
|
|
@ -86,7 +96,9 @@ main = do |
|
|
|
log Info "main" "Stopping TXMLConnector" |
|
|
|
log Info "main" "Stopping TXMLConnector" |
|
|
|
Connector.stop txml) $ \_ -> do |
|
|
|
Connector.stop txml) $ \_ -> do |
|
|
|
withHistoryProviderServer ctx (historyProviderEndpoint cfg) txml tisH logger id $ \_ -> do |
|
|
|
withHistoryProviderServer ctx (historyProviderEndpoint cfg) txml tisH logger id $ \_ -> do |
|
|
|
forever $ threadDelay 1000000 |
|
|
|
forever $ do |
|
|
|
|
|
|
|
threadDelay 200000 |
|
|
|
|
|
|
|
emitEvent "main_loop" |
|
|
|
log Info "main" "Shutting down" |
|
|
|
log Info "main" "Shutting down" |
|
|
|
|
|
|
|
killThread $ statsdThreadId statsdThread |
|
|
|
|
|
|
|
|
|
|
|
|