2012-04-24 22 views
0

我有一個成員ID列表,我需要循環並針對每個ID執行一些處理。從列表或記錄集一次處理5個項目

我目前循環每個ID,並針對每個ID的cfthread中的每個ID做一些處理。我遇到的問題是它創建了太多的線程,所以我想我可以在每個線程中處理大約5個項目。但我正在努力工作這一個。

我正在尋找類似於RoR的in_groups_of方法的內容。因此,我想將列表中的100個列表項目分成20個列表中的5個小列表,並將每個小列表傳遞給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 2012-04-24 09:00:16

0

詛咒我不能發表評論!我喜歡BennyB的回答,但你仍然可以有很多線索。如果你啓動了一些線程,並且線程每次從陣列中取下5個項目呢?

相關問題