我有一个批处理 apex 类,我在其中构建网站和电子邮件的集合,以便我可以使用这些集合来过滤将被制成集合的其他查询。设置完所有集合后,我想通过范围的最后一个循环来执行业务流程。
小样:
for(Object o : scope)
{
listEmails.add(o.Email);
listWebsites.add(o.Websites);
}
Map<String, Account> accounts = Gather all accounts where website not in :listWebsties; //Website is key
List<String, Contact> contacts = Gather all contacts where email not in :listEmails; //Email is key
for(Object o : scope)
{
Account = accounts.get(o.website);
Contact = contacts.get(o.Email);
Perform business logic here
}
问题是当我运行这个批处理时,它会持续处理几个小时。当使用一个相当小的数据库时,这工作得很好。但是在更大的环境中工作,也许这不是最好的解决方案。
谁能帮助我用更有效的方法加快批处理过程?