升级到WebJobs 0.3测试后,天青WebJobs是调用我的方法(与BlobTrigger作为输入)多次当斑被发布到存储。 发生这种情况无论是在控制台本地测试时,在Azure上。 就我而言,这是我在BlobTrigger,然后发布到一个队列,像这样:
public static void ProcessFactoryFileSubmission(
[BlobTrigger(blobs.RESPONSE + "/{requestId}_{factoryId}_{filename}")] ICloudBlob blob,
[Table(tables.PACKAGE)] CloudTable table,
[Queue(queues.FACTORY_RESPONSE)] out FactoryPackageResponseMessage responseQueue)
队列越来越两条消息,并在webjobs湛蓝仪表盘它只表示被两次调用该函数。
为什么是这样?
pianomanjh,这是已知的限制。 有触发器和产出不玩好几个组合。 让我来解释一下这是如何工作的内部,以及为什么这种情况下不工作:
情况1:BlobTrigger(输入)+斑点(输出):很容易知道,如果输入斑点是由寻找输出斑点,必须存在且是较新的处理。
情况2:QueueTrigger(输入)+任何输出:它是容易的,因为它得到处理之后被删除队列消息知道,如果输入被处理。
情况3:BlobTrigger(输入)+队列(输出):它不是很容易知道,如果输入斑点被处理,因为可能或可能不存在于队列中的消息。 同时,我们也不会存储在BLOB任何元数据知道,如果它是由特定的功能处理。
你打的情况下3.解决方法,这是一旦它被处理,所以它不会重新拾起来移动斑点在不同的容器/目录。
这个问题被固定为0.5.0-β。 BlobTriggers检测到新斑块时,或者,仅启动一个现有的斑被更新。 欲了解更多信息,请参阅这篇文章http://azure.microsoft.com/blog/2014/09/06/announcing-the-0-5-0-beta-preview-of-microsoft-azure-webjobs-sdk/