@JeremyLikness:Thanks so much Jeremy, great point on the Table concurrency, so the worst that could happen is the need to retry the original request.
I also love the usage of the Azure Resource Management templates, this would make it possible for us as a third party company to provide pre-canned solutions that our customers can import into their Azure environments.
Hi, this is a great example showing the power of Azure functions. One question I have is regarding the NextId parameter. As I understand it, functions are automatically scaled, so this function may be called concurrently, meaning that 2 concurrent invocations will initially have the same NextId from the Table. This will cause both urls to have the same paritition and row keys and therefore the possibility of one of them routing to the wrong url. It would be a really great addition to the Table API if one could work with truly atomic integer id's.
i.e. var id = tableClient.GetNextId("id partition scheme"); //Atomically update and return a unique id for the specified name.
If we could do the above then we could guarantee that the id used for the Encoding will indeed be unique.
My implementation of the CCR is going really well and it's great to see new versions coming out every month.
I have an issue that is niggling at me though and it's to do with the ProcessedTaskCount of a Dispatcher. I have a long running Windows Service that has 1 Dispatcher and multiple Dispatcher Queues. The service is quite busy, so the ProcessedTaskCount goes
up quite quickly. Given that ProcessTaskCount is an Int32, it's not unreasonable that over some time I will hit the Int32.MaxValue and the ccr will then bring my AppDomain down. Does this value recycle before it reaches Int32.MaxValue?
I think I'm getting the whole CCR thing bit by bit.
What would nail it for me is if I could do the following.
I have a logging application which must send emails either when a certain number have amounted - or a certain time period occurs. So if I have 5 log entries OR 5 minutes occur, then I need to send everything in the port.
This leads obviously to a Choice Arbiter with a Timer and a MultipleItemReceive. However, since a choice cannot be persisted, how could I keep this chain of events going after either event has occured for the first time?
This library looks fantastic if a little dautning to get your head around. You must be a very satisfied developer indeed )
That darned Ritcher just released his PowerThreading Library with lots of Async goodness that I did'nt quite get how to use and now there's CCR!!
Anyway, I kind of get it but I just wanted to check one thing regarding the persitent nature of Queues. If I post a number of Items to a port and then Activate it on a Receive handler without persitency, am I right in saying that only one item will be processed?
I was thinking that perhaps it would process all items in the port already but just ignore the ones addedd after the Arbiter was started.
Many thanks, keep the example code coming if you don't mind and full marks to Stacey and crew for picking this stuff up so quick.
PS. I'd love to see a full working project of reading an arbitary amount of bytes from an async socket.