6 import iTasks.Extensions.Distributed
8 Start w = flip doTasksWithOptions w \args eo
9 # (eo, s) = case args of
10 [argv0,"--slave",p] = ({eo & sdsPort=toInt p}, onStartup o slave)
11 _ = (eo, onRequest "/" o master)
12 = Ok (s args, {eo & distributed=True})
14 slave :: [String] -> Task ()
16 = get applicationOptions
17 >>- \eo->traceValue ("Slave started on port " +++ toString eo.sdsPort)
20 master :: [String] -> Task ()
22 = get applicationOptions
23 >>- \eo->traceValue ("Master started on port " +++ toString eo.serverPort)
24 >-| asyncTask (PrivateNode 9099 ["--slave", "9099"]) (blockWait 5)
25 // >-| asyncTask (ExistingNode "localhost" 9099) (blockWait 5)
26 >>! \s->viewInformation [] s
29 blockWait :: Int -> Task Int
30 blockWait i = accWorld (sleep i)
32 sleep :: !Int !*e -> (!Int, !*e)