Azure WebJob QueueTrigger message not removed from queue

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 
+5
source share
3 answers

I ran into this problem because the container is not always automatically created. So I created:

azure-working-host-output
azure-webjobs-hosts

+1
source

I had the same problem, I had a separate storage account for data and logs. If I used the same repository account for both error stops.

0
source

Check the SDK version for webjobs if it is below 1.1.1.0, and then make sure you are using the latest version.

so it should be as shown below, we had the same problem with webjobs sdk version 1.0.1.0 and the update to the latest was fixed.

  • Microsoft.Azure.WebJobs.dll (in our case, the current version was 1.0.1.0, and we need 1.1.1.0)
  • Microsoft.WindowsAzure.Storage.dll (current version 4.2.1.0, we need (≥ 4.3.0 & ≤ 5.0.2).
0
source

Source: https://habr.com/ru/post/1208582/


All Articles