Class BaseUploadQueue<T>
Generic base class for upload queues
Inherited Members
Namespace: Cognite.Extractor.Utils
Assembly: ExtractorUtils.dll
Syntax
public abstract class BaseUploadQueue<T> : IUploadQueue<T>, IUploadQueue, IDisposable, IAsyncDisposable
  Type Parameters
| Name | Description | 
|---|---|
| T | 
Constructors
| Edit this page View SourceBaseUploadQueue(CogniteDestination, TimeSpan, int, ILogger, Func<QueueUploadResult<T>, Task>?)
Constructor
Declaration
protected BaseUploadQueue(CogniteDestination destination, TimeSpan interval, int maxSize, ILogger logger, Func<QueueUploadResult<T>, Task>? callback)
  Parameters
| Type | Name | Description | 
|---|---|---|
| CogniteDestination | destination | Cognite destination used for uploads  | 
      
| TimeSpan | interval | Maximum interval between uploads. Set to zero or Timeout.InfiniteTimeSpan to disable periodic uploads  | 
      
| int | maxSize | Maximum size of the upload queue, once it reaches this size an upload will always be triggered  | 
      
| ILogger | logger | Logger to use  | 
      
| Func<QueueUploadResult<T>, Task> | callback | Callback on finished upload, whether it failed or not  | 
      
Properties
| Edit this page View SourceCallback
Callback on upload
Declaration
protected Func<QueueUploadResult<T>, Task>? Callback { get; }
  Property Value
| Type | Description | 
|---|---|
| Func<QueueUploadResult<T>, Task> | 
DestLogger
Logger to use
Declaration
protected ILogger DestLogger { get; }
  Property Value
| Type | Description | 
|---|---|
| ILogger | 
Destination
CogniteDestination to use
Declaration
protected CogniteDestination Destination { get; }
  Property Value
| Type | Description | 
|---|---|
| CogniteDestination | 
Methods
| Edit this page View SourceDequeue()
Empty the queue and return the contents
Declaration
public virtual IEnumerable<T> Dequeue()
  Returns
| Type | Description | 
|---|---|
| IEnumerable<T> | Contents of the queue  | 
      
Dispose()
Dispose of the queue, uploading all remaining entries. Use DisposeAsync instead if possible.
Declaration
public void Dispose()
  Dispose(bool)
Dispose of the queue, uploading all remaining entries.
Declaration
[SuppressMessage("Reliability", "CA2007: Do not directly await a Task", Justification = "Fine to wait in the same context")]
protected virtual void Dispose(bool disposing)
  Parameters
| Type | Name | Description | 
|---|---|---|
| bool | disposing | 
DisposeAsync()
Dispose of the queue, uploading all remaining entries. Preferred over synchronous dispose.
Declaration
public ValueTask DisposeAsync()
  Returns
| Type | Description | 
|---|---|
| ValueTask | 
DisposeAsyncCore()
Internal method to dispose asynchronously.
Declaration
protected ValueTask DisposeAsyncCore()
  Returns
| Type | Description | 
|---|---|
| ValueTask | 
Enqueue(IEnumerable<T>)
Enqueue a list of items in the internal queue.
Declaration
public virtual void Enqueue(IEnumerable<T> items)
  Parameters
| Type | Name | Description | 
|---|---|---|
| IEnumerable<T> | items | Items to enqueue  | 
      
Enqueue(T)
Enqueue a single item in the internal queue.
Declaration
public virtual void Enqueue(T item)
  Parameters
| Type | Name | Description | 
|---|---|---|
| T | item | Item to enqueue  | 
      
Start(CancellationToken)
Start automatically uploading queue entries
Declaration
public Task Start(CancellationToken token)
  Parameters
| Type | Name | Description | 
|---|---|---|
| CancellationToken | token | 
Returns
| Type | Description | 
|---|---|
| Task | 
Trigger(CancellationToken)
Trigger queue upload and return the result instead of calling the callback. Can be used as alternative for callback entirely.
Declaration
public Task<QueueUploadResult<T>> Trigger(CancellationToken token)
  Parameters
| Type | Name | Description | 
|---|---|---|
| CancellationToken | token | 
Returns
| Type | Description | 
|---|---|
| Task<QueueUploadResult<T>> | A QueueUploadResult<T> containing an error or the uploaded entries  | 
      
UploadEntries(IEnumerable<T>, CancellationToken)
Method called to upload entries
Declaration
protected abstract Task<QueueUploadResult<T>> UploadEntries(IEnumerable<T> items, CancellationToken token)
  Parameters
| Type | Name | Description | 
|---|---|---|
| IEnumerable<T> | items | Items to upload  | 
      
| CancellationToken | token | 
Returns
| Type | Description | 
|---|---|
| Task<QueueUploadResult<T>> | A QueueUploadResult<T> containing an error or the uploaded entries  |