Passer au contenu principal
Active Job est un framework pour déclarer des tâches et les faire s’exécuter sur une variété de backends de file d’attente fournis avec Rails. L’intégration Active Job suit l’exécution et les événements de la tâche en cours d’exécution. Lorsque AppSignal détecte des métriques Active Job, il créera un Magic Dashboard, vous permettant de surveiller visuellement les métriques principales.

Adaptateurs pris en charge

L’intégration Active Job prend en charge tous les adaptateurs Active Job. Elle peut également offrir une prise en charge pour les adaptateurs non répertoriés sur cette page, accessibles via une gem séparée. Cependant, veuillez noter que ces adaptateurs n’ont pas été testés.

Intégration avec les bibliothèques prises en charge par AppSignal

Les bibliothèques de tâches en arrière-plan suivantes prises en charge par AppSignal sont automatiquement intégrées à Active Job, permettant à AppSignal de vous fournir des informations de performance plus approfondies :

Signaler les erreurs lors de l’abandon d’une tâche

Définissez l’option de configuration activejob_report_errors sur discard pour ne signaler les erreurs que lorsqu’une tâche est abandonnée. Lorsqu’une tâche est abandonnée, toutes les tentatives de réessai ont été épuisées, et la tâche n’est plus réessayée. Lisez la documentation Active Job pour en savoir plus sur la gestion des exceptions Active Job et les réessais des tâches échouées.
class ExampleJob < ActiveJob::Base
  # Configure the retry attempts using the `retry_on` method
  retry_on StandardError, :attempts => 2

  # ...
end
Certains adaptateurs Active Job (tels que Sidekiq, Delayed::Job, etc.) ont leur propre système de réessai. Une fois qu’Active Job a épuisé ses réessais, ces bibliothèques peuvent déclencher leur propre système de réessai des tâches.Cela réessaiera les tâches même après qu’Active Job ait épuisé ses réessais et abandonné la tâche. Pour éviter de réessayer les tâches après qu’Active Job ait cessé de les réessayer, et qu’il signale des erreurs pour ces réessais, assurez-vous que le système de réessai de l’adaptateur est désactivé.Lorsque vous vous appuyez sur le système de réessai de Sidekiq, configurez-le également pour ne signaler les erreurs qu’en cas d’abandon, afin qu’il ne signale pas les erreurs plusieurs fois.

Métadonnées

AppSignal collecte les métadonnées suivantes pour les tâches Active Job :
MétadonnéeDescription
ID Active JobL’ID Active Job est signalé par l’adaptateur Active Job.
ArgumentsArguments passés à la tâche lors de l’appel à perform_later.
ÉvénementsTous les événements *.active_job.
Nom de la tâchepar exemple MyBackgroundJob#perform tel qu’utilisé pour regrouper la tâche pour les incidents AppSignal.
PrioritéLa priorité de l’échantillon, si vous utilisez un adaptateur qui prend en charge la priorité des tâches.
ID de tâche du fournisseurL’ID de tâche signalé par l’adaptateur Active Job.
QueueLe nom de la file d’attente de l’échantillon, si vous utilisez un adaptateur qui prend en charge plusieurs files d’attente.
Temps de file d’attente*Temps écoulé entre la mise en file d’attente et l’exécution d’une tâche.
*À partir de la version 6 de Rails, les temps de file d’attente sont signalés pour le namespace à partir duquel ils sont signalés et peuvent être consultés dans les graphiques de performance d’AppSignal. AppSignal utilise les métadonnées Active Job pour vous donner des informations contextuelles plus approfondies sur la performance des tâches. Lors de l’inspection des échantillons Active Job dans AppSignal :
  • Le nom de la tâche sera utilisé pour regrouper la tâche pour les incidents AppSignal :
Exemple d'aperçu des problèmes de performance
  • Les métadonnées (à l’exclusion du nom de la tâche et des événements) seront disponibles sous forme de tags filtrables sur les échantillons d’incidents :
Exemple de tags Active Job
  • Les événements *.active_job seront affichés dans la chronologie des événements pour les échantillons de performance :
Exemple de chronologie d'événements

Magic dashboard

Lorsque AppSignal reçoit des métriques Active Job, il créera un magic dashboard Active Job, disponible depuis la section dashboard de l’application AppSignal. Le magic dashboard Active Job aura les graphiques suivants :
GraphiqueMétriquesTags
Durée par classe de tâchetransaction_duration
  • namespace
  • action
  • Statut des tâches par file d’attenteactive_job_queue_job_count
  • status
  • queue
  • Statut des tâches par file d’attente avec prioritéactive_job_queue_job_count
  • status
  • queue
  • priority
  • Débit par classe de tâchetransaction_duration
  • namespace
  • action
  • Les tags vous donnent une répartition contextuelle des informations de performance Active Job. Actuellement, AppSignal signale les tags suivants pour les tâches Active Job :
    NomDescription
    actionLe nom de l’action à partir de laquelle la métrique a été signalée (par ex. : YourWorker#perform).
    queueFile d’attente nommée dans laquelle les tâches sont traitées, par exemple default ou mailer.
    statusStatut de chaque tâche, soit processed soit failed.
    Les tâches qui sont failed sont également comptées comme processed.
    priorityLa priorité donnée à chaque tâche, par exemple 0 ou 1.
    Chaque tag sera représenté par une ligne colorée sur le graphique : Exemple de dashboard Active Job

    Graphique Durée par classe de tâche

    Le graphique Durée par classe de tâche montre le temps qu’il a fallu aux tâches pour s’exécuter, regroupées par la classe qui définit la tâche. Vous pouvez utiliser ce graphique pour surveiller la performance des tâches, par classe, vous donnant une vue d’ensemble de la performance des tâches et vous permettant d’identifier et d’enquêter rapidement sur les pics de durée.

    Graphique Statut des tâches par file d’attente

    Le graphique Statut des tâches par file d’attente avec priorité montre le nombre de tâches exécutées, regroupées par leur statut résultant, par la file d’attente dans laquelle elles ont été mises en file d’attente. Vous pouvez utiliser ce graphique pour surveiller le nombre d’erreurs des tâches et leur performance en fonction de la file d’attente, identifier les goulots d’étranglement et optimiser vos tâches en arrière-plan pour l’évolutivité.

    Graphique Statut des tâches par file d’attente avec priorité

    Tous les adaptateurs Active Job ne prennent pas en charge la priorité des tâches. Si les tâches n’ont pas de valeurs de priorité, le graphique sera vide.
    Le graphique Statut des tâches par file d’attente avec priorité montre le nombre de tâches exécutées, regroupées par leur statut résultant, par la file d’attente dans laquelle elles ont été mises en file d’attente, et par la priorité qui leur a été donnée. Vous pouvez utiliser ce graphique pour surveiller le nombre d’erreurs des tâches et leur performance en fonction de la file d’attente et de la priorité, identifier les goulots d’étranglement et optimiser vos tâches en arrière-plan pour l’évolutivité.

    Graphique Débit par classe de tâche

    Le graphique Débit par classe de tâche montre le nombre de tâches exécutées, regroupées par la classe qui définit la tâche. Vous pouvez utiliser ce graphique pour surveiller le nombre de tâches exécutées, regroupées par la classe qui définit la tâche.