JobOperations.AddTask Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Sobrecargas
AddTask(String, CloudTask, IEnumerable<BatchClientBehavior>) |
Adiciona uma única tarefa a um trabalho. Para adicionar várias tarefas, use JobOperations.AddTaskAsync. |
AddTask(String, IEnumerable<CloudTask>, BatchClientParallelOptions, ConcurrentBag<ConcurrentDictionary<Type,IFileStagingArtifact>>, Nullable<TimeSpan>, IEnumerable<BatchClientBehavior>) |
Adiciona tarefas a um trabalho. |
AddTask(String, CloudTask, IEnumerable<BatchClientBehavior>)
Adiciona uma única tarefa a um trabalho. Para adicionar várias tarefas, use JobOperations.AddTaskAsync.
public System.Collections.Concurrent.ConcurrentDictionary<Type,Microsoft.Azure.Batch.IFileStagingArtifact> AddTask (string jobId, Microsoft.Azure.Batch.CloudTask taskToAdd, System.Collections.Generic.IEnumerable<Microsoft.Azure.Batch.BatchClientBehavior> additionalBehaviors = default);
member this.AddTask : string * Microsoft.Azure.Batch.CloudTask * seq<Microsoft.Azure.Batch.BatchClientBehavior> -> System.Collections.Concurrent.ConcurrentDictionary<Type, Microsoft.Azure.Batch.IFileStagingArtifact>
Public Function AddTask (jobId As String, taskToAdd As CloudTask, Optional additionalBehaviors As IEnumerable(Of BatchClientBehavior) = Nothing) As ConcurrentDictionary(Of Type, IFileStagingArtifact)
Parâmetros
- jobId
- String
A ID do trabalho ao qual adicionar a tarefa.
- additionalBehaviors
- IEnumerable<BatchClientBehavior>
Uma coleção de BatchClientBehavior instâncias que são aplicadas à solicitação de serviço do Lote após o CustomBehaviors.
Retornos
Uma coleção de informações sobre o processo de preparo de arquivos (consulte FilesToStage). Para obter mais informações, consulte IFileStagingArtifact.
Comentários
Cada chamada a esse método incorre em uma solicitação para o serviço do Lote. Portanto, usar esse método para adicionar várias tarefas é menos eficiente do que usar um método de adição em massa e pode incorrer em restrições de conexão HTTP. Se você estiver executando muitas dessas operações em paralelo e estiver vendo tempos limite do lado do cliente, consulte http://msdn.microsoft.com/en-us/library/system.net.servicepointmanager.defaultconnectionlimit%28v=vs.110%29.aspx ou use a sobrecarga de várias tarefas do AddTask.
Esta é uma operação de bloqueio. Para obter um equivalente sem bloqueio, consulte AddTaskAsync(String, CloudTask, ConcurrentDictionary<Type,IFileStagingArtifact>, IEnumerable<BatchClientBehavior>, CancellationToken).
Aplica-se a
AddTask(String, IEnumerable<CloudTask>, BatchClientParallelOptions, ConcurrentBag<ConcurrentDictionary<Type,IFileStagingArtifact>>, Nullable<TimeSpan>, IEnumerable<BatchClientBehavior>)
Adiciona tarefas a um trabalho.
public void AddTask (string jobId, System.Collections.Generic.IEnumerable<Microsoft.Azure.Batch.CloudTask> tasksToAdd, Microsoft.Azure.Batch.BatchClientParallelOptions parallelOptions = default, System.Collections.Concurrent.ConcurrentBag<System.Collections.Concurrent.ConcurrentDictionary<Type,Microsoft.Azure.Batch.IFileStagingArtifact>> fileStagingArtifacts = default, TimeSpan? timeout = default, System.Collections.Generic.IEnumerable<Microsoft.Azure.Batch.BatchClientBehavior> additionalBehaviors = default);
member this.AddTask : string * seq<Microsoft.Azure.Batch.CloudTask> * Microsoft.Azure.Batch.BatchClientParallelOptions * System.Collections.Concurrent.ConcurrentBag<System.Collections.Concurrent.ConcurrentDictionary<Type, Microsoft.Azure.Batch.IFileStagingArtifact>> * Nullable<TimeSpan> * seq<Microsoft.Azure.Batch.BatchClientBehavior> -> unit
Public Sub AddTask (jobId As String, tasksToAdd As IEnumerable(Of CloudTask), Optional parallelOptions As BatchClientParallelOptions = Nothing, Optional fileStagingArtifacts As ConcurrentBag(Of ConcurrentDictionary(Of Type, IFileStagingArtifact)) = Nothing, Optional timeout As Nullable(Of TimeSpan) = Nothing, Optional additionalBehaviors As IEnumerable(Of BatchClientBehavior) = Nothing)
Parâmetros
- jobId
- String
A ID do trabalho ao qual adicionar as tarefas.
- tasksToAdd
- IEnumerable<CloudTask>
Os CloudTasks a serem adicionados.
- parallelOptions
- BatchClientParallelOptions
Controla o número de solicitações addTaskCollection paralelas simultâneas emitidas para o serviço do Lote. Cada solicitação AddTaskCollection contém no máximo MaxTasksInSingleAddTaskCollectionRequest tarefas nela. Também controla o token de cancelamento da operação. Se omitido, o padrão será usado (consulte BatchClientParallelOptions.)
- fileStagingArtifacts
- ConcurrentBag<ConcurrentDictionary<Type,IFileStagingArtifact>>
Uma coleção opcional para receber informações sobre o processo de preparo de arquivos (consulte FilesToStage). Uma entrada é adicionada ao ConcurrentBag<T> para cada conjunto de tarefas agrupadas para envio ao serviço do Lote. Ao contrário dos adicionais de tarefa única, você não pode usar esse parâmetro para personalizar o processo de preparo de arquivos. Para obter mais informações sobre o formato de cada entrada, consulte IFileStagingArtifact.
- additionalBehaviors
- IEnumerable<BatchClientBehavior>
Uma coleção de BatchClientBehavior instâncias que são aplicadas à solicitação de serviço do Lote após o CustomBehaviors.
Exceções
Gerado se uma ou mais solicitações para o serviço do Lote falharem.
Comentários
Esta é uma operação de bloqueio; para um equivalente sem bloqueio, consulte AddTaskAsync(String, IEnumerable<CloudTask>, BatchClientParallelOptions, ConcurrentBag<ConcurrentDictionary<Type,IFileStagingArtifact>>, Nullable<TimeSpan>, IEnumerable<BatchClientBehavior>).
Esse método não é atômico; ou seja, é possível que o método comece a adicionar tarefas e, em seguida, falhe. A coleção de tarefas a serem adicionadas é dividida em partes de tamanho no máximo MaxTasksInSingleAddTaskCollectionRequeste uma solicitação AddTaskCollection é emitida para cada parte. As solicitações podem ser emitidas em paralelo de acordo com o parallelOptions
.
Emitir um grande número de solicitações simultâneas para o serviço do Lote pode incorrer em restrições de conexão HTTP. Se você estiver executando muitas dessas operações em paralelo (ou tiver especificado um MaxDegreeOfParallelism grande no parallelOptions) e estiver vendo tempos limite do lado do cliente, consulte http://msdn.microsoft.com/en-us/library/system.net.servicepointmanager.defaultconnectionlimit%28v=vs.110%29.aspx .
O progresso da operação em face de erros é determinado pelo AddTaskCollectionResultHandler comportamento. Normalmente, você não precisa especificar esse comportamento, pois o cliente do Lote usa um padrão que funciona em circunstâncias normais. Se você quiser personalizar esse comportamento, especifique um AddTaskCollectionResultHandler nas CustomBehaviors coleções ou additionalBehaviors
.