@Vitaly, thank you for taking the time to respond.
I have spent many hours reading all of your documentation watched every video I can find and looked at all of the samples
I have looked sdk · pkg.go.dev also.
There is actually a lot of information to digest and I am still getting my head around all of this.
To be more specific with what I am trying to do:
think of each task being to configure a router
many tasks can arrive for many different routers
when configuring a router it can only be edited by one worker at a time
once router is configured another task for that router can run
other routers can be configured without an issue, could be 100s of routers
I have understood the first step is to set a unique ID for the queue
the method I can use for GO-SDK is SignalWithStartWorkflow
I am a little confused how to build the workflow to achieve the above.
the basic idea for GO-SDK seems to be
var signalVal string
signalChan := workflow.GetSignalChannel(ctx, signalName)
s := workflow.NewSelector(ctx)
s.AddReceive(signalChan, func(c workflow.Channel, more bool) {
c.Receive(ctx, &signalVal)
workflow.GetLogger(ctx).Info("Received signal!", "signal", signalName, "value", signalVal)
})
s.Select(ctx)
if len(signalVal) > 0 && signalVal != "SOME_VALUE" {
return errors.New("signalVal")
}
If you can direct me to the documentation/examples I am happy to do more reading.