2

timerTriggerコレクションを処理し、(Node.js 関数によって) さらに処理するために処理結果をキューに入れる Node.js Azure 関数がありますqueueTrigger

コードは次のようなものです。

module.exports = function (context, myTimer) {
    collection.forEach(function (item) {
        var items = [];

        // do some work and fill 'items'

        var toBeQueued = { items: items };

        context.bindings.myQueue = toBeQueued;
    });

    context.done();
};

toBeQueuedこのコードは、キューに入れようとしている各コードではなく、最後のキューのみをキューに入れます。

複数のアイテムをキューに入れる方法はありますか?

アップデート

明確にするために、配列をキューに入れるだけでなくtoBeQueued、 の各反復でa をキューに入れることについて話しているのです。forEachはい、配列をキューに入れることができない Azure 関数の問題がありますが、回避策があります。すなわち、{ items: items }

4

2 に答える 2

4

Mathewcの答えは、ノードに関する正しいものです。

C#の場合、現在ICollector<T>、出力キュー パラメーターのタイプとして指定することで実行できます。

以下は、私が持っている 2 つの出力キューの例です。そのうちの 1 つは for ループを介して追加します。

public static void Run(Item inbound, DateTimeOffset InsertionTime, ICollector<Item> outbound, ICollector<LogItem> telemetry, TraceWriter log)
{
    log.Verbose($"C# Queue trigger function processed: {inbound}");

    telemetry.Add(new LogItem(inbound, InsertionTime));

    if(inbound.current_generation < inbound.max_generation)
    {
        for(int i = 0; i < inbound.multiplier; i++) {
            outbound.Add(Item.nextGen(inbound));
        }
    }
}
于 2016-04-02T16:19:23.193 に答える