我在我的apex控制器中遇到了一些問題。我正在循環開始和結束日期之間的事件(將事件從一個月拉出的最大天數),但這會導致潛在的數千個事件。所以我做了一個soql循環的事件,所以它把它們分成200個事件,然後循環遍歷200塊中的每個事件來創建自定義事件對象,以返回到我的可視化頁面。但是,在這第二個for循環中,我需要MORE for循環才能找到被邀請的人以及不在的工作,所以我的運行時不幸的是O(3n^3),但是前兩個for循環一般會作爲一個(得到200塊,循環遍歷它們,得到下一個,等等),所以它是更多的O(3n^2),但是當在一個月內有2777個事件的測試組織中,我碰到了CPU調控器限制。如何知道Apex中的批處理作業何時在JavaScript中完成?
我想把它放到批處理作業中,因爲我認爲這是處理這些大量事件的唯一方法(我無法再減少我的for循環)。
我希望有閃電加載微調運行,直到批處理作業完成。但是......我不確定如何在我的Visualforce頁面中批量作業完成()方法和我的JavaScript之間進行通信。我將在遠程操作調用中調用控制器中的方法,並取消隱藏微調器,然後該方法將啓動批處理作業,然後在批處理作業結束時,微調器停止並使用數據刷新頁面。
但是,我不完全知道如何將finish()連接到我的javascript以檢測批處理作業何時完成。
很大程度上是當用戶想要查看事件的一個月的價值,有可能只是太多和CPU時間的調控器限制......我不是專家,唯一的問題是在Apex所以想知道這是否可能是一個解決方案,但似乎可能沒有一個。我們正在考慮減少事件,如果他們達到極限,並讓用戶知道他們將不得不縮小觀看日期範圍以查看一些事件 –
什麼是事件?像標準對象Activity一樣? – EricSSH
哦,它在Salesforce中工作,因此它將salesforce事件對象並將它們放入調度程序客戶端 –