26.298. Class Submitter

Namespace: ArmoniK.Core.Common.gRPC.Services
Assembly: ArmoniK.Core.Common.dll

Implements the service for managing sessions, tasks, and results in the ArmoniK system. Provides methods for session and task lifecycle management, result retrieval and storage, and service configuration.

public class Submitter : ISubmitter

26.298.1. Inheritance

objectSubmitter

26.298.2. Implements

ISubmitter

26.298.3. Inherited Members

object.Equals(object?), object.Equals(object?, object?), object.GetHashCode(), object.GetType(), object.MemberwiseClone(), object.ReferenceEquals(object?, object?), object.ToString()

26.298.4. Constructors

26.298.4.1. Submitter(IPushQueueStorage, IObjectStorage, ILogger<Submitter>, ISessionTable, ITaskTable, IResultTable, IPartitionTable, Submitter, ActivitySource)

Initializes a new instance of the class.

[UsedImplicitly]
public Submitter(IPushQueueStorage pushQueueStorage, IObjectStorage objectStorage, ILogger<Submitter> logger, ISessionTable sessionTable, ITaskTable taskTable, IResultTable resultTable, IPartitionTable partitionTable, Submitter submitterOptions, ActivitySource activitySource)

26.298.4.1.1. Parameters

pushQueueStorage IPushQueueStorage

The queue storage for pushing tasks to be processed.

objectStorage IObjectStorage

The object storage for managing payloads and results.

logger ILogger<Submitter>

The logger for diagnostic and trace logging.

sessionTable ISessionTable

The session table for managing session metadata.

taskTable ITaskTable

The task table for managing task metadata.

resultTable IResultTable

The result table for managing result metadata.

partitionTable IPartitionTable

The partition table for managing partition metadata.

submitterOptions Submitter

The submitter options for configuration.

activitySource ActivitySource

The activity source for distributed tracing.

26.298.5. Methods

26.298.5.1. CancelSession(string, CancellationToken)

Cancels the specified session and all associated tasks.

public Task CancelSession(string sessionId, CancellationToken cancellationToken)

26.298.5.1.1. Parameters

sessionId string

The ID of the session to cancel.

cancellationToken CancellationToken

Token to cancel the operation.

26.298.5.1.2. Returns

Task

26.298.5.2. CompleteTaskAsync(TaskData, SessionData, bool, Output, CancellationToken)

Marks a task as completed and optionally resubmits it if required.

public Task CompleteTaskAsync(TaskData taskData, SessionData sessionData, bool resubmit, Output output, CancellationToken cancellationToken = default)

26.298.5.2.1. Parameters

taskData TaskData

The task data to complete.

sessionData SessionData

The session data associated with the task.

resubmit bool

Whether to resubmit the task after completion.

output Output

The output of the completed task.

cancellationToken CancellationToken

Token to cancel the operation.

26.298.5.2.2. Returns

Task

26.298.5.3. CreateSession(IList<string>, TaskOptions, CancellationToken)

Creates a new session with the specified partition IDs and default task options.

public Task<CreateSessionReply> CreateSession(IList<string> partitionIds, TaskOptions defaultTaskOptions, CancellationToken cancellationToken)

26.298.5.3.1. Parameters

partitionIds IList<string>

The list of partition IDs for the session.

defaultTaskOptions TaskOptions

The default options to use for tasks in this session.

cancellationToken CancellationToken

Token to cancel the operation.

26.298.5.3.2. Returns

Task<CreateSessionReply>

A reply containing session creation details.

26.298.5.4. CreateTasks(string, string, TaskOptions?, IAsyncEnumerable<TaskRequest>, CancellationToken)

Creates multiple tasks in a session.

public Task<ICollection<TaskCreationRequest>> CreateTasks(string sessionId, string parentTaskId, TaskOptions? options, IAsyncEnumerable<TaskRequest> taskRequests, CancellationToken cancellationToken)

26.298.5.4.1. Parameters

sessionId string

The ID of the session to add tasks to.

parentTaskId string

The parent task ID, if any.

options TaskOptions?

Optional task options to override the session defaults.

taskRequests IAsyncEnumerable<TaskRequest>

A stream of task requests containing payloads and dependencies.

cancellationToken CancellationToken

Token to cancel the operation.

26.298.5.4.2. Returns

Task<ICollection<TaskCreationRequest>>

A collection of task creation requests.

26.298.5.5. FinalizeTaskCreation(IEnumerable<TaskCreationRequest>, SessionData, string, CancellationToken)

Finalizes the creation of tasks after they have been submitted.

public Task FinalizeTaskCreation(IEnumerable<TaskCreationRequest> requests, SessionData sessionData, string parentTaskId, CancellationToken cancellationToken)

26.298.5.5.1. Parameters

requests IEnumerable<TaskCreationRequest>

The collection of task creation requests to finalize.

sessionData SessionData

The session data associated with the tasks.

parentTaskId string

The parent task ID

cancellationToken CancellationToken

Token to cancel the operation.

26.298.5.5.2. Returns

Task

26.298.5.6. GetServiceConfiguration(Empty, CancellationToken)

Retrieves the service configuration.

public Task<Configuration> GetServiceConfiguration(Empty request, CancellationToken cancellationToken)

26.298.5.6.1. Parameters

request Empty

The configuration request (empty).

cancellationToken CancellationToken

Token to cancel the operation.

26.298.5.6.2. Returns

Task<Configuration>

The current service configuration.

26.298.5.7. SetResult(string, string, string, IAsyncEnumerable<ReadOnlyMemory<byte>>, CancellationToken)

Sets the result for a given task and key by streaming the result chunks.

public Task SetResult(string sessionId, string ownerTaskId, string key, IAsyncEnumerable<ReadOnlyMemory<byte>> chunks, CancellationToken cancellationToken)

26.298.5.7.1. Parameters

sessionId string

The session ID associated with the result.

ownerTaskId string

The task ID that owns the result.

key string

The result key.

chunks IAsyncEnumerable<ReadOnlyMemory<byte>>

A stream of result data chunks.

cancellationToken CancellationToken

Token to cancel the operation.

26.298.5.7.2. Returns

Task

26.298.5.8. TryGetResult(ResultRequest, IServerStreamWriter<ResultReply>, CancellationToken)

Attempts to retrieve the result for a given request and streams it to the client.

[SuppressMessage("Usage", "CA2208:Instantiate argument exceptions correctly", Justification = "ArgumentOutOfRangeException is used in nested code")]
public Task TryGetResult(ResultRequest request, IServerStreamWriter<ResultReply> responseStream, CancellationToken cancellationToken)

26.298.5.8.1. Parameters

request ResultRequest

The result request specifying the task and result key.

responseStream IServerStreamWriter<ResultReply>

The server stream writer to send result replies.

cancellationToken CancellationToken

Token to cancel the operation.

26.298.5.8.2. Returns

Task

26.298.5.9. WaitForAvailabilityAsync(ResultRequest, CancellationToken)

Waits for the availability of a result for a given request.

[SuppressMessage("Usage", "CA2208:Instantiate argument exceptions correctly", Justification = "ArgumentOutOfRangeException is used in nested code")]
public Task<AvailabilityReply> WaitForAvailabilityAsync(ResultRequest request, CancellationToken contextCancellationToken)

26.298.5.9.1. Parameters

request ResultRequest

The result request specifying the task and result key.

contextCancellationToken CancellationToken

Token to cancel the operation.

26.298.5.9.2. Returns

Task<AvailabilityReply>

A reply indicating the availability of the result.

26.298.5.10. WaitForCompletion(WaitRequest, CancellationToken)

Waits for the completion of the specified tasks or session.

public Task<Count> WaitForCompletion(WaitRequest request, CancellationToken cancellationToken)

26.298.5.10.1. Parameters

request WaitRequest

The wait request specifying which tasks or session to wait for.

cancellationToken CancellationToken

Token to cancel the operation.

26.298.5.10.2. Returns

Task<Count>

A count indicating how many tasks have completed.