2016-04-24 1 views
-2

J'ai deux applications fonctionnant sur un même ordinateur qui devrait partager des données entre les deux environ 20 fois dans une seconde.Le moyen le plus rapide de transfert de données entre l'application

Application 1 génère une ligne de données de chaîne par exemple "1-ABC-XYZ-3-HK" et il veut transmettre ces données à l'application 2.

Ensuite Application 2 fait quelque chose et élimine ces données. Ce que j'ai fait maintenant, c'est que l'application 1 continue de générer les données et de les stocker dans un fichier de base de données SQL, tandis que l'application 2 surveille constamment ce même fichier SQL et chaque fois qu'il y a de nouvelles données les données vers une autre table marquée comme traitée. Ce processus se produit environ 20 fois dans une seconde.

L'application 2 a un contrôle de minuterie qui interroge le fichier de base de données 50 fois par seconde pour surveiller s'il y a de nouvelles données.

Ma question est ...

Y at-il plus rapide ou meilleure façon de transférer ces données que je l'ai expliqué ci-dessus? Je ne suis pas sûr si interroger une base de données 50 fois par seconde est bon ou mauvais et pourrait réduire les performances du PC.

L'application 1 génère des données et enregistre 20 fois par seconde en même temps l'application 2 interrogeant 50 fois la même base de données. S'il vous plaît aidez-moi s'il y a un moyen professionnel.

+0

Vous pouvez à la place laisser chaque application écrire dans les autres 'stdin'. –

+0

MSMQ, Producteur/Consommateur –

+1

Si vous souhaitez simplement envoyer des données d'un processus à un autre sur la même machine, je n'utiliserais pas de base de données. Je peux penser à plusieurs options: un socket, un tuyau nommé, un fichier mappé en mémoire. – RJM

Répondre

2

utiliser juste socket Tcp pour transférer les données d'une application à le suivant. Et vous pouvez sérialiser les données en utilisant les tampons de protocole.