2010-08-17 5 views
0

J'utilise une base de données MYSQL comme forme de banque de données IPC entre le client Web et le processus de code C sur Debian linux. Lorsque le client Web écrit des données dans la base de données mysql via un script php, j'ai besoin de mon application de code C pour aller chercher ces données.Attendre l'événement en raison de la mise à jour de la base de données

Cependant, je ne veux pas que l'application C interroge continuellement un drapeau pour vérifier si des données sont disponibles. Y at-il de toute façon un thread peut attendre d'un événement à partir d'une base de données MySQL ou quelque chose que lorsque signalé lui permettra de débloquer et de traiter les données

Merci

Répondre

0

Ce que vous essayez de faire est un peu lourd, mais ça peut marcher. Tout ce que vous devez faire fonctionner est d'utiliser un trigger qui se déclenchera lorsque les données sont insérées dans la base de données.

Le trigger appellera un user-defined function (UDF) qui à son tour signalera votre code C pour commencer à traiter les données nouvellement insérées. Vous n'avez même pas besoin d'écrire les vôtres UDF. Vous pouvez utiliser sys_exec à partir de la bibliothèque lib_mysqludf_sys pour exécuter un programme externe.

0

Veuillez fournir un scénario complet. Ce que je suppose est que vous pouvez utiliser EVENTS en combinaison avec une table (pour les drapeaux) pour réaliser ce genre de fonctionnalité. Je travaille sur un problème similaire. Si vous pouviez fournir une description détaillée, cela pourrait être utile. Dans mon cas, j'ai un déclencheur qui définit un indicateur sur certains enregistrements dans la même table à mettre à jour, et active le planificateur d'événements, puis un événement met à jour les enregistrements marqués et désactive le planificateur d'événements.

Questions connexes