diff options
Diffstat (limited to 'main.hs')
-rwxr-xr-x | main.hs | 14 |
1 files changed, 10 insertions, 4 deletions
@@ -240,15 +240,21 @@ postNumberR = do caller <- liftIO $ update db $ AddCaller _name _number _context sendStatusJSON status200 $ caller --- | This takes a while; it's doing like 200 records per second. It's IO bound, --- and in an un-optimized program GHC on Linux uses a single, blocking IO --- manager thread (on Windows it's non-blocking, apparently). This can be +-- | This takes a while; on my machine it averages 181 records per second. It's +-- IO bound, and in an un-optimized program GHC on Linux uses a single, blocking +-- IO manager thread (on Windows it's non-blocking, apparently). This can be -- improved with the Control.Concurrent module, it which case we could launch as --- many IO threads as we want, and do probably 10k records per second. +-- many IO threads as we want, and do probably 10k records per second. There's +-- definitely an optimal amount of threads here, we'd have to test to find that. -- -- HOWEVER, you can watch it bootstrap. Hit this endpoint, then use "GET /count" -- to see it updating. New POSTs will also work and update the database, even -- while it is bootstrapping, which is kinda cool. +-- +-- Try this in bash: +-- +-- while sleep 1; do curl -s "localhost:3000/count" | jq '.count'; done +-- postBootstrapR :: Handler RepJson postBootstrapR = do $logInfo "Initializing the database." |