jsforce 批量 api 选项之间的区别

Difference between jsforce bulk api options

我正在使用 jsforce 批量访问 salesforce api。它有两种更新和删除记录的方法。一种是使用普通批量 api,这意味着创建一个作业和批次:

var job = conn.bulk.createJob("Account", "delete");
var batch = job.createBatch();
var accounts = getAccountsByDate(jsforce.Date.TODAY);
batch.execute(accounts);

batch.on('response', function(rets) {
    // do things
});

另一种方法是像这样进入"query"界面:

conn.sobject('Account')
    .find({ CreatedDate: jsforce.Date.TODAY })
    .destroy(function(err, rets) {
        // do things
    });

第二种方式当然看起来更简单,但我无法让它一次更新或删除超过 10,000 条记录,这似乎是一个销售人员 api limit on batch size。请注意,在这种情况下,使用 jsforce 中的 maxFetch 属性 似乎没有任何效果。

那么假设查询样式界面只创建一个批次是否安全? jsforce documentation在这一点上不清楚。

目前 JSforce 批量 api 中的 bulk.load() 方法生成一个批次的作业,因此将应用每批次 10,000 个的限制。在使用内部使用 bulk.load() 的查找和销毁接口时也是如此。 为避免此限制,您可以通过 bulk.createJob() 创建一个作业并通过 job.createBatch() 创建多个批次,然后将要删除的记录分派到这些批次中,以便每个记录都不会超过限制。