Vastaa webhook-ilmoituksiin välittömästi

Tämä korjaa ongelman, jossa gitean webhookin http-kysely ehtii vanhentua
ennen kuin siihen on vastattu. Ilmoituksia lähettävän järjestelmän ei
myöskään tarvitse tietää kauanko ilmoitusten prosessointi kestää.
This commit is contained in:
Saku Laesvuori 2023-09-02 13:22:37 +03:00
parent f708ef1348
commit 2e526fe122
Signed by: slaesvuo
GPG Key ID: 257D284A2A1D3A32

View File

@ -7,6 +7,7 @@ module Main where
import Control.Concurrent (forkIO) import Control.Concurrent (forkIO)
import Control.Exception (onException) import Control.Exception (onException)
import Control.Exception (throwIO) import Control.Exception (throwIO)
import Control.Monad (void)
import Data.Acid (openLocalState) import Data.Acid (openLocalState)
import Data.Acid.Remote (skipAuthenticationCheck, acidServerSockAddr, openRemoteStateSockAddr, skipAuthenticationPerform) import Data.Acid.Remote (skipAuthenticationCheck, acidServerSockAddr, openRemoteStateSockAddr, skipAuthenticationPerform)
import Data.IMF (Mailbox, parse, mailbox) import Data.IMF (Mailbox, parse, mailbox)
@ -38,7 +39,7 @@ serverMain socket mail repoPath sendmailPath = do
queueMessages acid queueMessages acid
_ <- forkIO $ scotty 3000 $ do _ <- forkIO $ scotty 3000 $ do
defaultHandler $ liftAndCatchIO . LT.putStrLn -- Don't return exceptions to clients defaultHandler $ liftAndCatchIO . LT.putStrLn -- Don't return exceptions to clients
post "/" $ liftAndCatchIO $ updateMessages acid repoPath post "/" $ liftAndCatchIO $ void $ forkIO $ updateMessages acid repoPath
updateMessages acid repoPath updateMessages acid repoPath
_ <- forkIO $ manageQueueingMessages acid _ <- forkIO $ manageQueueingMessages acid
_ <- forkIO $ managePreviews acid mail sendmailPath _ <- forkIO $ managePreviews acid mail sendmailPath