You are currently browsing legacy 3.0 version of documentation. Click here to switch to the newest 5.0 version.

We can help you with migration to the latest RavenDB

Contact Us Now
see on GitHub

Changes API: How to subscribe to bulk insert operation changes?

forBulkInsert method can be used to acquire notifications for bulk insert operations.

Syntax

public IObservable<BulkInsertChangeNotification> forBulkInsert(UUID operationId);
Parameters
operationId UUID Id of bulk insert operation, generated when bulk insert operation is created.
ReturnValue
IObservable<BulkInsertChangeNotification> Observable that allows to add subscriptions to notifications for bulk insert operation with given id.

Example

try (BulkInsertOperation bulkInsert = store.bulkInsert()) {
  Closeable subscription = store
    .changes()
    .forBulkInsert(bulkInsert.getOperationId())
    .subscribe(Observers.create(new Action1<BulkInsertChangeNotification>() {
      @Override
      public void apply(BulkInsertChangeNotification change) {
        switch (change.getType()) {
          case BULK_INSERT_STARTED:
            // do something
            break;
          case BULK_INSERT_ENDED:
            // do something
            break;
          case BULK_INSERT_ERROR:
            // do something
            break;
          default:
            break;
        }
      }
    }));

  try {
    for (int i = 0; i < 1000 * 1000; i++) {
      Employee employee = new Employee();
      employee.setFirstName("FirstName #" + i);
      employee.setLastName("LastName #" + i);
      bulkInsert.store(employee);
    }
  } finally {
    if (subscription != null) {
      subscription.close();
    }
  }
}