Salesforce 批处理顶点和游标

Salesforce 批处理顶点和游标,salesforce,apex-code,Salesforce,Apex Code,我很难理解Apex批处理文档中的这一段。这是关于查询游标的,我还没学过。有人能解释一下QC和这里发生了什么吗 用户一次最多可以打开50个查询游标。例如,如果50个游标处于打开状态,并且当同一用户尝试打开新游标时,客户端应用程序仍在登录,则释放50个游标中最旧的游标。请注意,对于批处理Apexstart方法,此限制是不同的,每个用户一次最多可以打开五个查询游标。其他批处理顶点方法的上限为50个游标 分别跟踪不同Force.com功能的光标限制。例如,您可以同时打开50个Apex查询游标、50个批处

我很难理解Apex批处理文档中的这一段。这是关于查询游标的,我还没学过。有人能解释一下QC和这里发生了什么吗

用户一次最多可以打开50个查询游标。例如,如果50个游标处于打开状态,并且当同一用户尝试打开新游标时,客户端应用程序仍在登录,则释放50个游标中最旧的游标。请注意,对于批处理Apexstart方法,此限制是不同的,每个用户一次最多可以打开五个查询游标。其他批处理顶点方法的上限为50个游标


分别跟踪不同Force.com功能的光标限制。例如,您可以同时打开50个Apex查询游标、50个批处理游标和50个VisualForce游标。

我理解查询游标返回一个批处理记录和记录列表(在某种意义上是锁定的,例如,在批处理Apex之外的其他更新/编辑,只要处理记录,就会被阻止)。通常,Apex中的查询游标由方法返回

这些记录不是一次全部返回的,而是分为若干批数据。如果有500条记录,可能只返回前200条记录(这由确定,默认为200),那么批处理执行代码将再次为第二个200条记录运行,并再次为最后100条记录运行。同样的概念也适用于(请注意,在示例中的标准控制器初始化中使用了对的调用)


关于限制,基本上,您只能同时打开/运行50个对的调用、50个批处理Apex类和50个分页的Visualforce页面(使用示例中描述的方法)(此限制过去为5;50是一个巨大的改进)

谢谢你,马特。那么,查询游标与查询定位器相同吗?另外,介意我问你一个后续问题吗?在批处理类中,我实现了一个start、execute和finish方法。start类返回Database.getQueryLocator('select id,f1,from contact,其中f1:DirtySet')。好的,当我在execute中调用这个时,这些记录被锁定了吗?我担心比赛条件和僵局,但这似乎解决了这个问题。是吗?我很确定查询游标和查询定位器都是相同的。如果您按照每日计划运行批处理,并且批处理的执行时间不超过24小时,那么您不应该遇到任何锁定记录的问题。不过,我以前从未遇到过批量锁定记录的问题。关于如何锁定记录的信息来自。那么,批处理失败的原因是什么?你通常如何管理它们?这是一个非常开放的问题;这取决于批次。为了管理失败,我通常将它们记录到批处理状态对象(专门为监视批处理失败而创建),并在批处理完成(完成)时发送一封电子邮件。