I am trying to use the Azure WebJob SDK but am unable to find any documentation on it so I can know what to expect without having to poke at it with tests.
I did find this: http://azure.microsoft.com/en-us/documentation/articles/websites-webjobs-resources/ but it is more tutorials rather than documentation. They walk me through the very basic usages of the SDK but they don't go into any detail about the non happy-path situations.
I also found https://github.com/Azure/azure-webjobs-sdk-samples which has some non-happy paths but there is very little information about Service Bus there.
In the absence of strong documentation, it would be nice if the source code was available (other than through reflection). Then I could dig a little and find the answers to my questions. At the moment, the only way I have found to answer any question is to write some tests but that quickly becomes tedious.
Some examples of questions that I haven't been able to find the answer for in the above links (though I may have missed it):
If I have a method with a
[ServiceBusTrigger("my-queue")] String
parameter, does it PeekLock or ReceiveAndDelete?What about
[ServiceBusTrigger("my-queue")] BrokeredMessage
?If it is PeekLock, what happens on successful execution (no exception) of the function? Does it call Complete on the message or do I need to call that manually?
Does the behavior change if I have a
[ServiceBusTrigger("my-queue")] BrokeredMessage
instead of a[ServiceBusTrigger("my-queue")] String
?What happens if my processing method throws an exception? Does it call Abandon on the message?
If my processing function takes longer than the PeekLock timeout, is the lock automatically renewed or do I have to do that manually?
Are there any other automatic deserializations I can use for ServiceBusTriggers besides String and BrokeredMessage?
Is it possible to hook up a deserializer to my ServiceBusTrigger parameter? For example, if my messages are in protobuf format, can I teach the WebJob SDK about it so it can deserialize for me or do I have to receive it as a BrokeredMessage and manually deserialize?