Tous les produits
Search
Centre de documentation

Intelligent Media Management:Traitement asynchrone des tâches

Dernière mise à jour :Aug 10, 2026

IMM prend en charge diverses opérations de sortie de données. Certaines d'entre elles sont longues et ne peuvent pas renvoyer de résultats dans le cadre d'une seule requête synchrone. Pour gérer ces cas, IMM propose des opérations d'API asynchrones, généralement nommées selon le format CreateXXXTask, ainsi qu'un mécanisme de notification pour récupérer les résultats.

Remarque

Les opérations d'API asynchrones d'IMM sont conçues pour les travaux de longue durée qui ne peuvent pas renvoyer de résultats dans une seule requête synchrone. Cette approche asynchrone évite le blocage du client, améliore les performances du système et exécute les travaux gourmands en ressources ou planifiés en arrière-plan sans affecter l'expérience utilisateur.

Fonctionnement

  1. Téléchargez vos données source vers Alibaba Cloud Object Storage Service (OSS).

  2. Appelez une opération d'API IMM, telle que CreateXXXTask, pour initier une tâche asynchrone.

  3. IMM récupère et traite les données source à partir de l'URI OSS spécifié.

  4. IMM écrit les résultats du traitement dans l'URI OSS spécifié.

  5. Une fois la tâche terminée, IMM envoie l'état de la tâche à votre rubrique MNS ou ApsaraMQ for RocketMQ spécifiée.

  6. MNS ou ApsaraMQ for RocketMQ pousse ensuite le message de notification vers votre application ou service.

Entrée et sortie de tâche

  • Les paramètres des données d'entrée sont généralement préfixés par Source. Les paramètres suivants sont disponibles :

    • SourceURI : l'emplacement des données d'entrée. Seuls les URI OSS sont pris en charge.

    • Sources : un tableau contenant plusieurs URI d'entrée.

    • Source : un objet contenant plusieurs URI d'entrée.

  • Les paramètres des données de sortie sont généralement préfixés par Target. Les paramètres suivants sont disponibles :

    • TargetURI : la destination de la sortie. Ce paramètre prend en charge la syntaxe de modèle.

    • TargetURIPrefix : le préfixe de l'URI de destination de sortie.

    • Target : un objet contenant plusieurs URI de sortie.

Important

Les données d'entrée et de sortie doivent se trouver dans la même région que le service IMM.

URI OSS

Un URI OSS identifie de manière unique une ressource dans OSS et utilise le format oss://<bucket>/<object>, par exemple oss://test-bucket/test-object/test.docx.

Remarque

<bucket> correspond au nom d'un compartiment OSS situé dans la même région que votre projet. <object> représente le chemin d'accès complet au fichier, y compris son extension.

Les formats invalides courants incluent :

  • http://bucket.oss-cn-hangzhou.aliyuncs.com/test-object/test.docx

  • oss://bucket.oss-cn-hangzhou.aliyuncs.com/test-object/test.docx

Modèle TargetURI

Un modèle TargetURI vous permet d'utiliser des espaces réservés dans un URI. Ces espaces réservés sont remplacés par des valeurs réelles lors de l'exécution pour générer dynamiquement l'URI de sortie final. Par exemple : oss://{bucket}/{tags.custom}/{dirname}/{barename}.{autoext}.

Pour plus d'informations, consultez la section Modèle TargetURI.

Autorisation

Pour une tâche asynchrone, vous devez accorder à IMM les permissions de lire les données d'entrée et d'écrire les données de sortie aux emplacements que vous fournissez. Ces permissions sont déterminées par le paramètre Project Name de votre requête, qui identifie le projet et son rôle lié au service associé. Vous spécifiez ce rôle pour le projet à l'aide du paramètre Service Role dans l'opération d'API Créer un projet. Par défaut, le rôle AliyunIMMDefaultRole est utilisé ; il est créé automatiquement lorsque vous activez le service. Pendant le traitement de la tâche, IMM endosse ce rôle pour accéder à vos données.

Obtenir l'état de la tâche

Utilisation de MNS ou d'ApsaraMQ for RocketMQ

Comme décrit dans la section Fonctionnement, vous pouvez configurer MNS ou ApsaraMQ for RocketMQ pour recevoir les notifications d'état des tâches IMM. Il s'agit de la méthode recommandée. Pour plus de détails sur le format de notification, consultez la section Format des messages de notification asynchrone.

Important

MNS ou ApsaraMQ for RocketMQ doit se trouver dans la même région que IMM.

  • (Recommandé) Utilisez le paramètre Notification pour spécifier la configuration MNS ou ApsaraMQ for RocketMQ pour les notifications asynchrones.

    • MNS : utilisez le champ MNS dans le paramètre Notification pour spécifier le endpoint et la rubrique MNS.

      {
        "Notification": {
          "MNS": {
            "Endpoint": "The MNS endpoint",
            "TopicName": "The MNS topic"
          }
        }
      }
    • ApsaraMQ for RocketMQ : utilisez le champ RocketMQ dans le paramètre Notification pour spécifier le endpoint, la rubrique et l'ID d'instance d'ApsaraMQ for RocketMQ.

      {
        "Notification": {
          "RocketMQ": {
            "Endpoint": "The ApsaraMQ for RocketMQ endpoint",
            "TopicName": "The ApsaraMQ for RocketMQ topic",
            "InstanceId": "The ApsaraMQ for RocketMQ instance ID"
          }
        }
      }
  • Utilisez les paramètres NotifyEndpoint et NotifyTopicName pour spécifier le endpoint et la rubrique MNS afin de recevoir les notifications de messages asynchrones.

    • NotifyEndpoint : le endpoint MNS pour recevoir les notifications. Par défaut, il s'agit du endpoint MNS de l'appelant.

    • NotifyTopicName : le nom de la rubrique MNS. Si ce paramètre est laissé vide, aucune notification n'est envoyée.

Utilisation de l'API GetTask

IMM fournit également l'opération d'API GetTask pour interroger l'état d'une tâche.

Bien que vous puissiez appeler à plusieurs reprises l'opération d'API GetTask pour interroger l'état d'une tâche jusqu'à sa completion, cette méthode est inefficace et déconseillée pour les environnements de production. Pour les tâches de longue durée, l'interrogation peut entraîner un grand nombre d'appels à GetTask. Si de nombreuses tâches sont en file d'attente, cela peut déclencher une limitation globale et affecter d'autres appels d'API. De plus, l'interrogation introduit une latence. Une tâche peut se terminer à tout moment entre deux interrogations, mais vous ne serez informé de son achèvement qu'à la prochaine interrogation, ce qui entraîne un délai moyen égal à la moitié de l'intervalle d'interrogation.

Remarque

Les informations sur la tâche ne sont conservées que pendant 7 jours après le début de la tâche, après quoi elles ne peuvent plus être récupérées.

Utilisation des tags

Le paramètre Tags de votre requête vous permet d'ajouter des tags à une tâche. Vous pouvez utiliser les tags de la manière suivante :

  • Rechercher des tâches par tag.

  • Utiliser les tags comme variables dans un modèle TargetURI.