Created
September 18, 2018 17:23
-
-
Save vasily-kirichenko/55481886d20eb17e5ed97ac9293cc30b to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
open Akka.Actor | |
open Akka.Streams | |
open Akka.Streams.Dsl | |
open System | |
open System.Threading | |
[<EntryPoint>] | |
let main _ = | |
let sys = ActorSystem.Create "test" | |
let mat = ActorMaterializer.Create sys | |
let q = | |
Source | |
.Queue(5, OverflowStrategy.Backpressure) | |
.Select(fun x -> | |
Thread.Sleep 100 | |
x | |
) | |
.To(Sink.ForEach (fun x -> printfn "got %d" x)) | |
.Run(mat) | |
[1..100] | |
|> List.map (fun x -> | |
async { | |
Console.WriteLine (sprintf "offering %d..." x) | |
let! _ = q.OfferAsync x |> Async.AwaitTask | |
Console.WriteLine (sprintf "offered %d" x) | |
}) | |
|> Async.Parallel | |
|> Async.RunSynchronously | |
|> ignore | |
q.Complete() | |
sys.WhenTerminated.Wait() | |
0 | |
offering 4... | |
offering 3... | |
offering 2... | |
offering 1... | |
offering 6... | |
offering 8... | |
offering 5... | |
offering 10... | |
offering 9... | |
offering 11... | |
offering 12... | |
offering 14... | |
offering 13... | |
offering 15... | |
offering 16... | |
offering 17... | |
offering 18... | |
offering 19... | |
offering 20... | |
offering 22... | |
offering 21... | |
offering 24... | |
offering 23... | |
offering 26... | |
offering 25... | |
offering 28... | |
offering 29... | |
offering 30... | |
offering 31... | |
offering 32... | |
offering 33... | |
offering 34... | |
offering 35... | |
offering 7... | |
offering 36... | |
offering 27... | |
offering 37... | |
offering 38... | |
offering 39... | |
offering 40... | |
offering 41... | |
offering 42... | |
offering 43... | |
offering 44... | |
offering 45... | |
offering 46... | |
offering 47... | |
offering 48... | |
offering 49... | |
offering 50... | |
offering 52... | |
offering 53... | |
offering 54... | |
offering 55... | |
offering 56... | |
offering 57... | |
offering 58... | |
offering 60... | |
offering 59... | |
offering 61... | |
offering 63... | |
offering 64... | |
offering 65... | |
offering 62... | |
offering 66... | |
offering 67... | |
offering 68... | |
offering 69... | |
offering 70... | |
offering 72... | |
offering 71... | |
offering 74... | |
offering 75... | |
offering 73... | |
offering 76... | |
offering 77... | |
offering 79... | |
offering 78... | |
offering 80... | |
offering 82... | |
offering 83... | |
offering 84... | |
offering 85... | |
offering 86... | |
offering 51... | |
offering 87... | |
offering 88... | |
offering 90... | |
offering 91... | |
offering 92... | |
offering 93... | |
offering 94... | |
offering 95... | |
offering 96... | |
offering 97... | |
offering 98... | |
offering 99... | |
offering 100... | |
offering 81... | |
offering 89... | |
offered 4 | |
got 4 | |
offered 3 | |
got 3 | |
offered 2 | |
got 2 | |
offered 1 | |
got 1 | |
offered 6 | |
got 6 | |
offered 8 | |
got 8 | |
offered 5 | |
got 5 | |
offered 10 | |
got 10 | |
offered 9 | |
got 9 | |
offered 11 | |
got 11 | |
offered 12 | |
got 12 | |
offered 14 | |
got 14 | |
offered 15 | |
got 15 | |
offered 16 | |
got 16 | |
offered 17 | |
got 17 | |
offered 13 | |
got 13 | |
offered 18 | |
got 18 | |
offered 19 | |
got 19 | |
offered 20 | |
got 20 | |
offered 22 | |
got 22 | |
offered 21 | |
got 21 | |
offered 24 | |
got 24 | |
offered 23 | |
got 23 | |
offered 26 | |
got 26 | |
offered 25 | |
got 25 | |
offered 28 | |
got 28 | |
offered 29 | |
got 29 | |
offered 30 | |
got 30 | |
offered 31 | |
got 31 | |
offered 32 | |
got 32 | |
offered 33 | |
got 33 | |
offered 34 | |
got 34 | |
offered 35 | |
got 35 | |
offered 37 | |
got 37 | |
offered 38 | |
got 38 | |
offered 39 | |
got 39 | |
offered 40 | |
got 40 | |
offered 41 | |
got 41 | |
offered 7 | |
got 7 | |
offered 42 | |
got 42 | |
offered 43 | |
got 43 | |
offered 36 | |
got 36 | |
offered 45 | |
got 45 | |
offered 44 | |
got 44 | |
offered 46 | |
got 46 | |
offered 47 | |
got 47 | |
offered 48 | |
got 48 | |
offered 49 | |
got 49 | |
offered 50 | |
got 50 | |
offered 52 | |
got 52 | |
offered 53 | |
got 53 | |
offered 55 | |
got 55 | |
offered 54 | |
got 54 | |
offered 56 | |
got 56 | |
offered 27 | |
got 27 | |
offered 57 | |
got 57 | |
offered 58 | |
got 58 | |
offered 60 | |
got 60 | |
offered 59 | |
got 59 | |
offered 61 | |
got 61 | |
offered 63 | |
got 63 | |
offered 64 | |
got 64 | |
offered 65 | |
got 65 | |
offered 62 | |
got 62 | |
offered 66 | |
got 66 | |
offered 67 | |
got 67 | |
offered 68 | |
got 68 | |
offered 69 | |
got 69 | |
offered 70 | |
got 70 | |
offered 72 | |
got 72 | |
offered 71 | |
got 71 | |
offered 75 | |
got 75 | |
offered 73 | |
got 73 | |
offered 74 | |
got 74 | |
offered 76 | |
got 76 | |
offered 77 | |
got 77 | |
offered 79 | |
got 79 | |
offered 78 | |
got 78 | |
offered 80 | |
got 80 | |
offered 82 | |
got 82 | |
offered 83 | |
got 83 | |
offered 84 | |
got 84 | |
offered 86 | |
got 86 | |
offered 85 | |
got 85 | |
offered 51 | |
got 51 | |
offered 87 | |
got 87 | |
offered 88 | |
got 88 | |
offered 90 | |
got 90 | |
offered 91 | |
got 91 | |
offered 92 | |
got 92 | |
offered 93 | |
got 93 | |
offered 94 | |
got 94 | |
offered 95 | |
got 95 | |
offered 96 | |
got 96 | |
offered 97 | |
got 97 | |
offered 98 | |
got 98 | |
offered 99 | |
got 99 | |
offered 100 | |
got 100 | |
offered 81 | |
got 81 | |
offered 89 | |
got 89 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment