Share via


Achèvement et annulation d’un travail

Pour terminer un travail de transfert, appelez la méthode IBackgroundCopyJob::Complete . Pour les travaux de téléchargement, vous pouvez appeler la méthode Complete avant que tous les fichiers du travail aient été transférés (avant que l’état du travail ne soit BG_JOB_STATE_TRANSFERRED). Seuls les fichiers que BITS a correctement transférés au client avant l’appel de la méthode Complete sont disponibles pour l’utilisateur.

Pour les travaux de chargement, appelez la méthode Complete uniquement si l’état du travail est BG_JOB_STATE_TRANSFERRED. Pour déterminer quand l’état du travail est BG_JOB_STATE_TRANSFERRED, interrogez la propriété d’état du travail ou inscrivez-vous pour recevoir BG_NOTIFY_JOB_TRANSFERRED notification d’événement.

Pour annuler un travail de transfert, appelez la méthode IBackgroundCopyJob::Cancel . La méthode Cancel supprime le travail de la file d’attente de transfert et supprime les fichiers temporaires du client. En règle générale, vous appelez cette méthode si vous ne parvenez pas à résoudre une erreur associée au travail.

La méthode Cancel annule un chargement si le chargement n’est pas terminé. Si le chargement est terminé et que le travail est de type BG_JOB_TYPE_UPLOAD_REPLY, la méthode annule la réponse.

Si vous n’appelez pas la méthode Complete ou la méthode IBackgroundCopyJob::Cancel dans les 90 jours (jobInactivityTimeout par défaut stratégie de groupe), le service annule le travail. Si le service annule le travail, les fichiers téléchargés et le fichier de réponse ne sont pas disponibles pour le client ; l’annulation du travail n’affecte pas les fichiers qui ont été correctement chargés. Vous devez toujours appeler la méthode Complete ou Cancel et ne pas vous appuyer sur la stratégie JobInactivityTimeout pour nettoyer vos travaux. Les travaux laissés dans la file d’attente peuvent empêcher les utilisateurs de créer d’autres travaux si la limite de stratégie MaxJobsPerUser ou MaxJobsPerMachine est atteinte.