Skip to content

Commit

Permalink
Corrected last bits for 1-container set up and wiring in build.
Browse files Browse the repository at this point in the history
  • Loading branch information
ragiano215 committed Jul 22, 2021
1 parent d7b271d commit 397ba84
Showing 1 changed file with 7 additions and 6 deletions.
13 changes: 7 additions & 6 deletions propulsion-cosmos-reactor/Program.fs
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,8 @@ module Args =
x.ConsumerGroupName, srcC.DatabaseId, srcC.ContainerId, Option.toNullable srcC.MaxDocuments)
if srcC.FromTail then Log.Warning("(If new projector group) Skipping projection of all existing events.")
srcC.LagFrequency |> Option.iter<TimeSpan> (fun i -> Log.Information("ChangeFeed Lag stats interval {lagS:n0}s", i.TotalSeconds))
let storeClient, monitored = srcC.ConnectStoreAndMonitored()
let context = CosmosStoreContext.create storeClient
(srcC, context, monitored, leases, x.ConsumerGroupName, srcC.FromTail, srcC.MaxDocuments, srcC.LagFrequency)
let monitored = srcC.ConnectMonitored()
(srcC, monitored, leases, x.ConsumerGroupName, srcC.FromTail, srcC.MaxDocuments, srcC.LagFrequency)
and [<NoEquality; NoComparison>] CosmosSourceParameters =
| [<AltCommandLine "-Z"; Unique>] FromTail
| [<AltCommandLine "-md"; Unique>] MaxDocuments of int
Expand Down Expand Up @@ -101,11 +100,13 @@ module Args =
member val MaxDocuments = a.TryGetResult MaxDocuments
member val LagFrequency = a.TryGetResult LagFreqM |> Option.map TimeSpan.FromMinutes
member val private LeaseContainerId = a.TryGetResult CosmosSourceParameters.LeaseContainer

member private x.ConnectLeases containerId = connector.CreateUninitialized(x.DatabaseId, containerId)
member x.ConnectLeases() = match x.LeaseContainerId with
| None -> x.ConnectLeases(x.ContainerId + "-aux")
| Some sc -> x.ConnectLeases(sc)
member x.ConnectStoreAndMonitored() = connector.ConnectStoreAndMonitored(x.DatabaseId, x.ContainerId)
member x.ConnectMonitored() = connector.ConnectMonitored(x.DatabaseId, x.ContainerId)
member x.Connect() = connector.ConnectStore("Main", x.DatabaseId, x.ContainerId)

/// Parse the commandline; can throw exceptions in response to missing arguments and/or `-h`/`--help` args
let parse tryGetConfigValue argv : Arguments =
Expand All @@ -116,9 +117,9 @@ module Args =
let [<Literal>] AppName = "ReactorTemplate"

let build (args : Args.Arguments) =
let source, context, monitored, leases, processorName, startFromTail, maxDocuments, lagFrequency = args.SourceParams()
let source, monitored, leases, processorName, startFromTail, maxDocuments, lagFrequency = args.SourceParams()

let context = source.Cosmos.Connect() |> Async.RunSynchronously |> CosmosStoreContext.create
let context = source.Connect() |> Async.RunSynchronously |> CosmosStoreContext.create
let cache = Equinox.Cache(AppName, sizeMb=10)
let srcService = Todo.Cosmos.create (context, cache)
let dstService = TodoSummary.Cosmos.create (context, cache)
Expand Down

0 comments on commit 397ba84

Please sign in to comment.