我在我的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事件对象并将它们放入调度程序客户端 –