Maison >développement back-end >Golang >Apprenez à implémenter un robot de service en utilisant Golang et Lua
La colonne suivante du golangtutoriel vous présentera comment utiliser Golang et Lua pour implémenter un robot de service. J'espère que cela vous sera utile. amis dans le besoin !
L'une des tâches de l'équipe de projet dans laquelle nous sommes est de collecter les e-mails (dans une large mesure, nous utilisons les e-mails pour économiser de l'argent), puis de les vérifier depuis notre système Vérifiez les informations pertinentes, puis répondez à l'e-mail. Bien que la charge de travail ne soit pas importante, cela réduira le temps en petites parties. Afin de gagner du temps, j'ai créé un robot de messagerie en service. Je lui ai demandé de répondre automatiquement aux e-mails en mon nom, étant donné que de nombreuses personnes devraient pouvoir utiliser cette chose, je l'ai partagée. Partageons d’abord l’effet.
C'est très simple sur le serveur Dutyrobot est le framework compilé par Golang. Le dossier lua contient une logique métier écrite en lua. Data.json enregistre certaines données pertinentes pour éviter la perte de données après le redémarrage, telles que les informations sur les cookies.
Utilisez l'alpin le plus basique pour démarrer, mappez les dossiers pertinents au conteneur, puis démarrez le logiciel dans le conteneur. Ceci est principalement fait pour que l'image puisse avoir ses propres variables d'environnement.
Ensuite, la logique métier reçoit régulièrement des e-mails, puis détermine la logique métier, exécute le script lua correspondant, puis répond à l'e-mail.
Transmettez simplement un résultat connexe à notre groupe des affaires internes.
En fait, je suis un programmeur C# de profession. Pour ce faire, j'ai d'abord utilisé C# pour l'implémenter. , C# et Lua ne sont pas compatibles et je n'ai pas trouvé de bibliothèque de classes plus élégante. Si je veux utiliser le système Linux, j'ai essayé d'utiliser .net core + C pour appeler Lua, mais je suis toujours très naïf à ce sujet. J'étais confus par l'installation de divers packages Python. Donc, à la fin, j'ai choisi Golang pour écrire les fonctions sous-jacentes et les publier sur Lua, puis j'ai laissé Lua écrire diverses logiques métier pour mettre en œuvre l'ensemble du projet. Quant à la partie framework, une fois écrite, la probabilité de changements est relativement faible, et la compilation croisée Linux avec Windows peut être déployée et lancée directement sans même installer d'environnement, ce qui est vraiment cool. Le langage interprété par Lua est plutôt bon sauf pour rien d'autre.
Le framework de base est universel, il peut donc être publié et utilisé directement. Ne vous souciez que du contenu de votre entreprise.
Cadre de base : https://gitee.com/anxin1225/DutyRobotGo
Dans ce cadre, je propose de nombreuses fonctions pour Lua, notamment l'envoi et la réception d'e-mails, le lancement de requêtes réseau et le lancement Surveillance du réseau (vous pouvez même l'utiliser comme couche inférieure pour créer une petite station API, croyez-moi, je l'ai déjà fait), enregistrer temporairement des données, obtenir des variables d'environnement, obtenir le contenu d'un fichier, puis démarrer un conteneur Lua (oui, lua La possibilité de créer à nouveau un conteneur Lua), d'obtenir les informations système actuelles et les tâches planifiées cron. Bien sûr, si vous pensez que cela ne suffit pas, vous pouvez également l'étendre une deuxième fois. C'est en fait très simple. J'en ai déjà écrit beaucoup, je vais le copier par comparaison. Cependant, en général, il n'est pas nécessaire de développer ici. Après tout, la clé est de savoir comment faire des affaires.
Ensuite, parlons de la façon dont la partie Lua est implémentée. Parce que le code dans Golang trouve directement main.lua pour l'exécution, nous partirons de ce fichier.
J'ai enregistré de nombreux services. Quant aux services qui existent, je dois encore regarder comment c'est écrit dans le cadre. Cron est l'une des petites fonctions que j'ai écrites. En fait, il s'agit d'une tâche de tâche. Correspondant à la partie framework, vous pouvez consulter le dossier des tâches pour voir l'implémentation spécifique. Vous pouvez voir qu'il y a deux fichiers des deux côtés, parmi eux, task.go est la fonction de langage de. Golang. task_4lua.go consiste à exposer la fonction de Golang L'emplacement enregistré de l'interface appelée par Lua.
Jetons un coup d'œil au fichier task_4lua.go. Il existe généralement une fonction appelée RegisterFunc_4lua pour l'enregistrement.
Cela semble très familier. Cron est le nom de la classe utilisée par Lua. La carte ci-dessous est le nom correspondant qui doit être appelé. Ce qui suit sera comparé aux fonctions du côté golang. le côté Lua dans la fonction. Si vous ne le trouvez pas, vous pouvez venir au cadre et regarder autour de vous. Vous pourriez être surpris.
Dans mon entreprise. Recevez-le toutes les minutes et enregistrez le cookie toutes les 5 minutes. La véritable logique métier est en fait écrite dans chaque fichier Lua. Voyons comment recevoir et traiter les messages.
Voici la logique métier simple de Lua Recevez l'email puis appelez le traitement correspondant Lua. Une fois le traitement terminé, vous avez terminé.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!