2012-04-24 6 views
0

私はループする必要があるメンバーIDのリストを持っており、各IDに対して何らかの処理を行います。リストまたはレコードセットから一度に5つのアイテムを処理する

私は現在、各IDをループし、各IDに対してcfthread内の各IDに対して何らかの処理を行います。私が持っている問題は、スレッドがたくさん作成されていることです。そのため、各スレッド内で約5つのアイテムを処理できるとわかりました。しかし、私はこの問題を解決するために苦労しています。

私はRoRのin_groups_ofメソッドに似た何かを探しています。ですから、私は100リストアイテムのリストを、各リストの5つの小さなリスト20に分割し、それぞれの小さなリストを一度に1つのアイテムではなくcfthreadに渡したいと思います。

私はこれが簡単だと確信していますが、私はそれをどうやってやるのか分かりません。

おかげ配列にリストを回しについてどのように

答えて

2

明らかにこれは非常に裸の骨であるが、それは開始を提供することができ:

<cfscript> 
    myArr = listToArray(myList); 

    for(i=1;i<arrayLen(myArr);i+5){ 

     //need to do some checking to confirm that myArr[i+1] etc exist 
     processFive(myArr[i],myArr[i+1],myArr[i+2],myArr[i+3],myArr[i+4],myArr[i+5]); 
    } 
    function processFive(id1, id2, id3, id4, id5){ 
     //spin up thread and do processing... 

    } 

</cfscript> 
+2

BennyBは、確かにトリックでした。私はarraySlice udf(http://www.cflib.org/udf/arraySlice)と一緒にあなたのアプローチを始めました。ありがとう! – Jason

0

はコメントする私の無力を呪い!私はBennyBの答えが好きですが、あなたはまだ多くのスレッドを持つことができます。いくつかのスレッドを開始し、そのスレッドが一度に5つのアイテムをアレイから外してしまった場合はどうなりますか?

関連する問題