Compétences Temporal Python Pro
📦

Temporal Python Pro

Sûr

Créer des Workflows Durables avec le SDK Python Temporal

La construction de systèmes distribués fiables est complexe. Cette compétence fournit des conseils experts sur le SDK Python Temporal pour l'orchestration de workflows durables, la gestion des erreurs et le déploiement en production.

Prend en charge: Claude Codex Code(CC)
📊 69 Adéquat
1

Télécharger le ZIP du skill

2

Importer dans Claude

Allez dans Paramètres → Capacités → Skills → Importer un skill

3

Activez et commencez à utiliser

Tester

Utilisation de "Temporal Python Pro". Créer un workflow de traitement de commande

Résultat attendu:

Définit un workflow avec @workflow.defn, implémente les activités validate_order, charge_payment et send_confirmation avec des politiques de nouvelle tentative appropriées et une configuration de délai d'attente

Utilisation de "Temporal Python Pro". Gérer l'échec du paiement avec compensation

Résultat attendu:

Montre le pattern try/except capturant ActivityError, implémentant l'activité de compensation refund_payment et émettant des événements d'annulation de workflow

Audit de sécurité

Sûr
v1 • 2/25/2026

Static analysis scanned 0 files with 0 lines. Risk score is 0/100. No suspicious patterns detected. This is a prompt-only skill providing guidance on Temporal Python SDK usage without executable code. Safe for publication.

0
Fichiers analysés
0
Lignes analysées
0
résultats
1
Total des audits
Aucun problème de sécurité trouvé
Audité par: claude

Score de qualité

38
Architecture
100
Maintenabilité
87
Contenu
31
Communauté
100
Sécurité
74
Conformité aux spécifications

Ce que vous pouvez construire

Orchestration de Microservices

Coordonner les transactions distribuées sur plusieurs services en utilisant des patterns saga avec logique de compensation.

Processus Métier à Long Terme

Implémenter des workflows qui s'étendent sur des heures à des années avec persistance automatique de l'état et récupération.

Pipelines de Traitement de Données

Créer des workflows de transformation de données multi-étapes avec traitement par lots parallèle et gestion des erreurs.

Essayez ces prompts

Configuration de Workflow de Base
Aidez-moi à créer un workflow Temporal de base en Python qui traite les commandes utilisateurs. J'ai besoin de valider la commande, de facturer le paiement et d'envoyer un e-mail de confirmation. Montrez-moi la définition du workflow et les implémentations des activités.
Configuration de Politique de Nouvelle Tentative
J'ai besoin de configurer des politiques de nouvelle tentative pour une activité qui appelle une API externe avec des limites de taux. L'API permet 100 requêtes par minute et peut retourner des erreurs 429. Quels paramètres de politique de nouvelletentative dois-je utiliser ?
Implémentation de Gestionnaire de Signal
Comment implémenter un gestionnaire de signal qui permet aux utilisateurs d'annuler un workflow en cours ? Montrez-moi comment valider le signal, gérer l'annulation gracieusement et émettre des activités de compensation.
Stratégie de Test en Production
J'ai besoin de tester un workflow qui s'étend sur 30 jours en utilisant le saut de temps. Créez un test qui valide que le workflow complète toutes les activités dans le bon ordre et gère les scénarios de délai d'attente.

Bonnes pratiques

  • Gardez les workflows concentrés sur la logique d'orchestration ; déplacez tous les appels externes vers les activités
  • Utilisez workflow.now() et workflow.random() au lieu des modules datetime et random pour le déterminisme
  • Implémentez des activités idempotentes pour garantir des nouvelles tentatives sûres sur les échecs transitoires
  • Configurez les délais d'attente appropriés : schedule_to_close pour la durée totale, start_to_close pour les tentatives uniques
  • Utilisez l'environnement de test avec saut de temps pour un retour rapide sur les workflows à long terme

Éviter

  • Utiliser datetime.now() ou random.random() directement dans le code du workflow brise le déterminisme
  • Faire des appels API directs depuis les workflows au lieu d'utiliser des activités
  • Ne pas gérer ActivityError dans les workflows, perdant la capacité d'implémenter une compensation
  • Bloquer la boucle d'événements asynchrone avec du code synchrone dans les activités asynchrones
  • Dépasser les limites de taille de charge utile de 2Mo en passant des données volumineuses entre les activités

Foire aux questions

Quelle est la différence entre un workflow et une activité dans Temporal ?
Les workflows définissent la logique d'orchestration et doivent être déterministes. Les activités effectuent des opérations externes comme les appels API ou les requêtes de base de données. Les workflows appellent les activités, qui gèrent le travail réel.
Comment tester des workflows qui s'exécutent pendant des jours ou des semaines ?
Utilisez WorkflowEnvironment avec le saut de temps activé. Cela exécute les appels workflow.sleep() instantanément, vous permettant de tester des workflows d'un mois en quelques secondes pendant les tests unitaires.
Puis-je mettre à jour le code du workflow après le déploiement ?
Oui, mais vous devez maintenir le déterminisme pour les workflows existants en cours d'exécution. Utilisez workflow.get_version() pour gérer les changements de code gracieusement et tester avec relecture contre les historiques de production.
Que se passe-t-il quand une activité échoue ?
Temporal renouvelle automatiquement en fonction de votre configuration RetryPolicy. Vous pouvez spécifier l'intervalle initial, le coefficient de backoff, le nombre maximum de tentatives et marquer certains types d'erreurs comme non-renouvelables.
Comment les signaux diffèrent-ils des requêtes ?
Les signaux permettent aux systèmes externes d'envoyer des événements qui modifient l'état du workflow. Les requêtes fournissent un accès en lecture seule à l'état du workflow pour la surveillance. Les signaux peuvent changer l'état ; les requêtes ne le peuvent pas.
Quel modèle d'exécution dois-je utiliser pour les activités ?
Utilisez les activités asynchrones pour les I/O non bloquantes, ThreadPoolExecutor pour les I/O synchrones bloquantes, et ProcessPoolExecutor pour les tâches intensives en CPU. Ne bloquez jamais la boucle d'événement asynchrone.

Détails du développeur

Structure de fichiers

📄 SKILL.md