I have a WebJob running continuously using WebJobs SDK 1.0.0.
Here is the configuration code.
public static void Main() { var config = new JobHostConfiguration(); config.Queues.MaxDequeueCount = 1; config.Queues.BatchSize = 1; var host = new JobHost(config); host.RunAndBlock(); }
Here is my work function signature.
public static void HuntVkusniyBlogRss([QueueTrigger("queue-rss")] string message, DateTimeOffset expirationTime, DateTimeOffset insertionTime, DateTimeOffset nextVisibleTime, string id, string popReceipt, int dequeueCount, string queueTrigger, CloudStorageAccount cloudStorageAccount, TextWriter log) { ... }
I expect that after the function succeeds, the message will be removed from the launch queue. But I get the launch function more than once.
Logging shows that it starts every next VisibleTime session, and each time decqueueCount is incremented every time.
UPD: it looks like an error occurs after the function is executed. Here are the logs from the webjob toolbar:
[12/08/2014 13:10:47 > 51d5f4: INFO] Executing: 'Program.HuntVkusniyBlogRss' because New queue message detected on 'queue-rss'. [12/08/2014 13:10:53 > 51d5f4: ERR ] [12/08/2014 13:10:53 > 51d5f4: ERR ] Unhandled Exception: Microsoft.WindowsAzure.Storage.StorageException: The remote server returned an error: (404) Not Found. ---> System.Net.WebException: The remote server returned an error: (404) Not Found. [12/08/2014 13:10:53 > 51d5f4: ERR ] at Microsoft.WindowsAzure.Storage.Shared.Protocol.HttpResponseParsers.ProcessExpectedStatusCodeNoException[T](HttpStatusCode expectedStatusCode, HttpStatusCode actualStatusCode, T retVal, StorageCommandBase`1 cmd, Exception ex) [12/08/2014 13:10:53 > 51d5f4: ERR ] at Microsoft.WindowsAzure.Storage.Blob.CloudBlobSharedImpl.<DeleteBlobImpl>b__1b(RESTCommand`1 cmd, HttpWebResponse resp, Exception ex, OperationContext ctx) [12/08/2014 13:10:53 > 51d5f4: ERR ] at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.EndGetResponse[T](IAsyncResult getResponseResult) [12/08/2014 13:10:53 > 51d5f4: ERR ] --- End of inner exception stack trace --- [12/08/2014 13:10:53 > 51d5f4: ERR ] at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.EndExecuteAsync[T](IAsyncResult result) [12/08/2014 13:10:53 > 51d5f4: ERR ] at Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob.EndDelete(IAsyncResult asyncResult) [12/08/2014 13:10:53 > 51d5f4: ERR ] at Microsoft.WindowsAzure.Storage.Core.Util.AsyncExtensions.<>c__DisplayClass4.<CreateCallbackVoid>b__3(IAsyncResult ar) [12/08/2014 13:10:53 > 51d5f4: ERR ] --- End of stack trace from previous location where exception was thrown --- [12/08/2014 13:10:53 > 51d5f4: ERR ] at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) [12/08/2014 13:10:53 > 51d5f4: ERR ] at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) [12/08/2014 13:10:53 > 51d5f4: ERR ] at Microsoft.Azure.WebJobs.Host.Protocols.PersistentQueueWriter`1.<DeleteAsync>d__6.MoveNext() [12/08/2014 13:10:53 > 51d5f4: ERR ] --- End of stack trace from previous location where exception was thrown --- [12/08/2014 13:10:53 > 51d5f4: ERR ] at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) [12/08/2014 13:10:53 > 51d5f4: ERR ] at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) [12/08/2014 13:10:53 > 51d5f4: ERR ] at Microsoft.Azure.WebJobs.Host.Loggers.CompositeFunctionInstanceLogger.<DeleteLogFunctionStartedAsync>d__e.MoveNext() [12/08/2014 13:10:53 > 51d5f4: ERR ] --- End of stack trace from previous location where exception was thrown --- [12/08/2014 13:10:53 > 51d5f4: ERR ] at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) [12/08/2014 13:10:53 > 51d5f4: ERR ] at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) [12/08/2014 13:10:53 > 51d5f4: ERR ] at Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.<TryExecuteAsync>d__1.MoveNext() [12/08/2014 13:10:53 > 51d5f4: ERR ] --- End of stack trace from previous location where exception was thrown --- [12/08/2014 13:10:53 > 51d5f4: ERR ] at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) [12/08/2014 13:10:53 > 51d5f4: ERR ] at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) [12/08/2014 13:10:53 > 51d5f4: ERR ] at Microsoft.Azure.WebJobs.Host.Queues.Listeners.QueueTriggerExecutor.<ExecuteAsync>d__0.MoveNext() [12/08/2014 13:10:53 > 51d5f4: ERR ] --- End of stack trace from previous location where exception was thrown --- [12/08/2014 13:10:53 > 51d5f4: ERR ] at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) [12/08/2014 13:10:53 > 51d5f4: ERR ] at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) [12/08/2014 13:10:53 > 51d5f4: ERR ] at Microsoft.Azure.WebJobs.Host.Queues.Listeners.QueueListener.<ProcessMessageAsync>d__11.MoveNext() [12/08/2014 13:10:53 > 51d5f4: ERR ] --- End of stack trace from previous location where exception was thrown --- [12/08/2014 13:10:53 > 51d5f4: ERR ] at Microsoft.Azure.WebJobs.Host.Timers.BackgroundExceptionDispatcher.<>c__DisplayClass1.<Throw>b__0() [12/08/2014 13:10:53 > 51d5f4: ERR ] at System.Threading.ThreadHelper.ThreadStart_Context(Object state) [12/08/2014 13:10:53 > 51d5f4: ERR ] at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) [12/08/2014 13:10:53 > 51d5f4: ERR ] at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) [12/08/2014 13:10:53 > 51d5f4: ERR ] at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) [12/08/2014 13:10:53 > 51d5f4: ERR ] at System.Threading.ThreadHelper.ThreadStart() [12/08/2014 12:08:18 > 51d5f4: SYS ERR ] Job failed due to exit code -532462766 [12/08/2014 12:08:18 > 51d5f4: SYS INFO] Process went down, waiting for 0 seconds [12/08/2014 12:08:18 > 51d5f4: SYS INFO] Status changed to PendingRestart [12/08/2014 12:08:23 > 51d5f4: SYS INFO] Run script 'HunterWebJob.exe' with script host - 'WindowsScriptHost' [12/08/2014 12:08:23 > 51d5f4: SYS INFO] Status changed to Running [12/08/2014 12:08:25 > 51d5f4: INFO] Found the following functions: [12/08/2014 12:08:25 > 51d5f4: INFO] Cookagg.HunterWebJob.Program.HuntVkusniyBlogRss [12/08/2014 12:08:25 > 51d5f4: INFO] Job host started