新しいアイテムがAzureキューに着いたときに作業を開始しているバックグラウンドタスクでWebJobに切り替えました。今私は、私が説明できないRedis RedLockとStorageにアクセスする際に問題があると思われるいくつかの変わった問題があります。Azure Web Jobs Redis(RedLock)とBlobストレージアクセスの問題
今私がもっている最大の問題はRedLockです。私たちは分散ロックのためにRedLock.Netを使用しています。今これは我々のプロダクションWebアプリケーションではうまく動作し、バックグラウンドワーカーにも働いていましたが、WebJobに切り替えるとすぐにロックを取得できませんでした。いくつかのコードでこれをバックアップするには...私たちは、このようにロックされています
using (var redisLock = await _redLockConnection.RedisLockFactory.CreateAsync(resource, UserLockExpiryTime, UserLockWaitTime, UserLockRetryTime))
{
// make sure we got the lock
if (redisLock.IsAcquired)
{
// execute code...
}
else
{
throw new CouldNotAcquireRedLockException();
}
}
問題がここにある、IsAcquiredはWebjob内で常に偽であると私は手掛かり理由がありません!
2番目の問題は、WebJob内の404だけで失敗している、空白のストレージ内のBLOBファイルを削除することです。
var file = _blobContainer.GetBlockBlobReference("file.txt");
file?.Delete();
これは、WebJob内で404 Not found例外が発生すると失敗します。
私はwebjobの設定を忘れていますか?書き込み操作のアクセスに問題がありますか?助けてくれてうれしいですね!ロックが利用可能な場合
'' WebJob内でのみ404で失敗する、空のストレージのblobファイルを削除する '' BlobがAzureポータルまたはAzureストレージエクスプローラ経由で存在するかどうかを確認するか、[Exists method](https:// docs。 blobの存在を確認するには、microsoft.com/en-us/dotnet/api/microsoft.windowsazure.storage.blob.cloudblob.exists?view=azurestorage-8.1.3#Microsoft_WindowsAzure_Storage_Blob_CloudBlob_Exists_Microsoft_WindowsAzure_Storage_Blob_BlobRequestOptions_Microsoft_WindowsAzure_Storage_OperationContext_)を参照してください。 –