2013-01-09 53 views
0

這是一個奇怪的問題,約60秒後(定時4次)。我正在運行一個執行HTTPService調用的循環(只需要幾秒鐘),當它完成後,它返回到該函數並重復添加到計數器。Flex/AIR Loop在60秒後停止執行(超時)

代碼適用於較小的測試樣本(從未獲得超過92項)。在我的情況下,項目是文件夾名稱。

是否存在某種不需要用戶輸入的代碼超時?我已經多次查看我的代碼,但沒有什麼不應該起作用。

+0

你看到腳本超時錯誤嗎?或者它只是退出使自己的呼叫又回來了?如果這是一個超時錯誤,那麼可以通過定期退出循環並添加callLater()或Timer來解決問題。防止同步鎖定。但如果退出回撥,可能會有其他錯誤導致它不能進行下一次回叫。 –

+0

不,我沒有得到任何錯誤,調試痕跡只是凍結,沒有再發生任何呼叫。我也檢查了服務,但我總是得到http 200,所以不能這樣做,無法想象還有什麼可能... – DominicM

+0

啊...我敢打賭,你正在運行在調試器中的瀏覽器超時問題。你使用的是什麼操作系統/瀏覽器,我會告訴你如何解決它...更好的是,只需谷歌瀏覽器類型和Flex調試器超時...你會看到一堆關於如何修復它的教程 –

回答

0

最後事實證明,這是循環使用方式的錯誤。這只是一個巧合,它在約60秒停止運行。我通過將一系列循環分解爲在所有請求完成而不是立即完成時調用下一步/函數的函數來解決此問題。

0

也許服務阻止你,因爲它是可疑..

+0

服務在我自己的服務器上(php),所以不需要它。我甚至通過在php服務中使用sleep函數進行檢查,以更改已處理項目的數量,但不是停止執行的時間。 – DominicM

0

確定這成了對我有意思,我發現這一點:

「馬克斯執行時間值指定的最長持續時間,在秒,ActionScript事件處理程序可以在Flash Player假定它掛起之前執行,並中止它,默認值爲60秒,不能將此值設置爲60秒以上。

因此,我關於使用計時器分手的評論可能是您最好的解決方案。

+0

是的,但它可能在空氣中非常不同,但幾乎沒有空中應用程序的文檔......這是否適用於沒有用戶輸入或僅循環運行的任何代碼(例如for循環)。我刪除了循環,以支持事件回調,現在它似乎執行更長時間(遠高於60秒),儘管可能因爲不同的原因而停滯。現在是2072年的400個項目將會看到它是否運行到這個文件夾的結尾。 – DominicM

+0

是的,它表示這也適用於AIR ......(我搜索了AIR來查找答案)。答案是正確的關於什麼是錯誤的...現在如何克服它我認爲將採取像你正在做的時間/事件的反覆試驗。 –

+0

也剛剛發現這個鏈接,這是一個解決方案,聽起來很像你的問題。 [鏈接這裏](http://blogs.infosupport.com/flex-4-a-multi-threading-solution/) –