private void HandleBatchOfCountersIfNecessary() { if (_docCount < MaxDocumentCount && _countersPerDoc < MaxCountersPerDocument) { return; } var prevCommand = _prevCommand; var prevCommandTask = _prevCommandTask; var commandTask = _database.TxMerger.Enqueue(_cmd); _prevCommand = _cmd; _prevCommandTask = commandTask; if (prevCommand != null) { AsyncHelpers.RunSync(() => prevCommandTask); } _cmd = new CountersHandler.ExecuteCounterBatchCommand(_database) { HasWrites = true }; _docCount = 0; _countersPerDoc = 0; }
private void HandleBatchOfCountersIfNecessary() { if (_batchSize < _maxBatchSize) { return; } var prevCommand = _prevCommand; var prevCommandTask = _prevCommandTask; var commandTask = _database.TxMerger.Enqueue(_cmd); _prevCommand = _cmd; _prevCommandTask = commandTask; if (prevCommand != null) { AsyncHelpers.RunSync(() => prevCommandTask); } _cmd = new CountersHandler.ExecuteCounterBatchCommand(_database) { HasWrites = true }; _batchSize = 0; }
public CounterActions(DocumentDatabase database) { _database = database; _docCount = 0; _cmd = new CountersHandler.ExecuteCounterBatchCommand(_database) { HasWrites = true }; }
private void FinishBatchOfCounters() { if (_prevCommand != null) { AsyncHelpers.RunSync(() => _prevCommandTask); _prevCommand = null; } if (_docCount > 0) { AsyncHelpers.RunSync(() => _database.TxMerger.Enqueue(_cmd)); } _cmd = null; }