Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Membre régulier
    Inscrit en
    avril 2004
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : avril 2004
    Messages : 210
    Points : 74
    Points
    74

    Par défaut ajout dans une queue et déclenchement de service

    Bonjour,

    J'ai fait un service windows qui vient régulièrement (timer) requêter en base les données dans une table pour voir s'il n'a pas des demandes à traiter (nouveaux enregistrements). Jusque là pas de soucis.

    En regardant mes logs. Je constate que plus de 90% du temps, il se lance pour rien. Aussi je voudrais savoir s'il n'est pas possible de réveiller le service suite à un insert dans la base. Ce qui serait plus "élégant". Une sorte de trigger. Avez vous des idées ou des pistes ? D'avance merci.

    Au niveau des contraintes, le service gère les "demandes" triées selon leur niveau de priorité et leur ancienneté. Les demandes émanent d'une appli web. Elles peuvent arriver en grande quantité genre plusieurs centaines par minutes. Après le passage par la base n'est pas une obligation.

    C'est une sorte de gestion de file d'attente via la BD où sont consignés les informations pour le traitement. Par contre je dois informer l'utilisateur de l'état de sa demande. Aujourd'hui c'est dans la base mais je peux m'en affranchir en passant par des étiquettes WorkFlow.

    En gros j'ai un état de la demande (attente, en cours, terminée...) à gérer et 3 ID transmettre pour pouvoir faire le traitement demandés.

  2. #2
    Modérateur
    Avatar de h2s84
    Homme Profil pro Holty Samba SOW
    Développeur .NET
    Inscrit en
    mars 2007
    Messages
    3 022
    Détails du profil
    Informations personnelles :
    Nom : Homme Holty Samba SOW
    Âge : 29
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2007
    Messages : 3 022
    Points : 5 839
    Points
    5 839

    Par défaut

    Citation Envoyé par antrax2013 Voir le message
    En regardant mes logs. Je constate que plus de 90% du temps, il se lance pour rien. Aussi je voudrais savoir s'il n'est pas possible de réveiller le service suite à un insert dans la base. Ce qui serait plus "élégant". Une sorte de trigger. Avez vous des idées ou des pistes ? D'avance merci.
    La question est de savoir, est-ce que durant les 90% du temps où le service ne fout rien, tu as des problèmes de performance ou de mémoire ? Si non, bah pourquoi vouloir changer vu qu'il n'y a aucun problème.

    Si tu veux seulement une solution vraiment élégante sans timer, alors orientes-toi vers les services. En gros ton service windows héberge un service WCF. Ton application Web informe ton service à chaque qu'elle a inséré une demande avec succès en lui fournissant l'ID de la demande.
    Consultant .Net chez SoftFluent
    Découvrir notre produit CodeFluent Entities

    Adhérer à l'association Fier d'être développeur
    Les FAQ sur les technologies .Net voir ici
    Les cours et tutos sur les technologies .Net voir ici
    Les critiques sur les livres parlant des technologies .Net voir ici
    Pensez à la balise [CODE]
    Pensez au tag si votre problème est résolu

  3. #3
    Membre régulier
    Inscrit en
    avril 2004
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : avril 2004
    Messages : 210
    Points : 74
    Points
    74

    Par défaut

    Citation Envoyé par h2s84 Voir le message
    La question est de savoir, est-ce que durant les 90% du temps où le service ne fout rien, tu as des problèmes de performance ou de mémoire ? Si non, bah pourquoi vouloir changer vu qu'il n'y a aucun problème.
    Effectivement c'est un de nos soucis. Bien que le service ne soit pas très groumant quand il ne fait rien. Mais la multiplication des services de ce type commence à se faire sentir.

    Citation Envoyé par h2s84 Voir le message
    Si tu veux seulement une solution vraiment élégante sans timer, alors orientes-toi vers les services. En gros ton service windows héberge un service WCF. Ton application Web informe ton service à chaque qu'elle a inséré une demande avec succès en lui fournissant l'ID de la demande.
    Je vais regarder à ca. Merci de l'info.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •