次のコラム golangチュートリアル では、Golang と lua を使用して勤務ロボットを実装する方法を紹介します。友人の役に立てば幸いです。必要としている!
私たちのプロジェクト チームのタスクの 1 つは、電子メールを収集し (コストを節約するために大部分は電子メールを使用しています)、システムからそれらをチェックすることです。関連情報を入力して電子メールに返信してください。作業量は多くありませんが、時間を大幅に短縮できます。時間を節約するために、当番のメールロボットを作りました。私に代わってメールに自動返信してほしいとお願いしたのですが、これは多くの人に使ってほしいと思い、シェアさせていただきました。まずは効果をシェアしましょう。
サーバー上では非常にシンプルで、Dutyrobot は Golang によってコンパイルされたフレームワークです。 lua フォルダーには、lua で書かれたビジネス ロジックが含まれています。 Data.json は、再起動後に Cookie 情報などのデータが失われるのを防ぐために、いくつかの関連データを保存します。
最も基本的な alpine を使用して開始し、関連するフォルダーをコンテナーにマッピングして、コンテナー内のソフトウェアを起動します。これは主に、イメージが独自の環境変数を持つことができるようにするために行われます。
次に、ビジネス ロジックは定期的に電子メールを受信し、ビジネス ロジックを決定し、対応する lua スクリプトを実行して、電子メールに返信します。
関連する結果を社内担当グループにプッシュするだけです。
実は私は C# プログラマで、そのために最初に C# を使って実装しました。と Lua には互換性がなく、これよりエレガントなクラス ライブラリは見つかりませんでした。 Linux システムを使用するために、.net core C を使用して Lua を呼び出してみましたが、この問題についてはまだ非常に単純です。さまざまな Python パッケージのインストールに戸惑いました。そこで最終的に、基礎となる関数を記述して Lua に公開するために Golang を選択し、Lua にさまざまなビジネス ロジックを記述してプロジェクト全体を実装させました。フレームワーク部分に関しては、一度書いてしまえば変更される可能性は比較的低く、環境をインストールすることなく直接 Linux を Windows でクロスコンパイルしてデプロイして起動できるので、非常に優れています。 lua インタープリター言語は、何もない点を除けば非常に優れています。
基本的なフレームワークはユニバーサルなので、リリースして直接使用できます。自分のビジネス内容にだけ気を配ってください。
基本フレームワーク: https://gitee.com/anxin1225/DutyRobotGo
このフレームワークでは、主に電子メールの送受信、ネットワーク リクエストの開始、およびネットワーク監視 (これを最下層として使用して小さな API ステーションを作成することもできます。信じてください、私は以前にこれを実行したことがあります)、データを一時的に保存し、環境変数を取得し、ファイルの内容を取得してから、Lua コンテナを起動します (はい、 lua Lua コンテナを再度作成し、現在のシステム情報を取得し、スケジュールされたタスクを cron する機能。もちろん、十分ではないと感じたら、もう一度拡張することもできます。実際は非常に簡単です。すでにたくさん書いています。比較してコピーします。非常に簡単です。ただし、基本的には拡大する必要はなく、枠組みの部分についてはここでは深く説明しませんが、結局はビジネスをどうするかが焦点となります。
それでは、Lua 部分の実装方法について説明します。 Golang のコードは main.lua を直接見つけて実行するため、このファイルから開始します。
たくさんのサービスを登録しましたが、どのようなサービスがあるのかについては、フレームワーク上でどのように記述されているかを確認する必要があります。 Cron は、私が作成した小さな関数の 1 つです。実はタスクタスクです フレームワーク部分に相当し、具体的な実装はtasksフォルダを確認すると両側に2つのファイルがあるのがわかります このうちtask.goは言語機能ですGolang.task_4lua.go は Golang の機能を公開するもので、Lua が呼び出すインターフェースの登録場所です。
ファイル task_4lua.go を見てみましょう。通常、登録用の RegisterFunc_4lua という関数があります。
これは見覚えがあります。Cron は Lua が使用するクラスの名前です。以下のマップは呼び出す必要がある対応する名前です。以下は golang 側の関数と比較します。大まかに書きます関数内の Lua 側、どのように呼び出すべきか。見つからない場合は、フレームに近づいて周りを見回してください。
私のビジネスにおいて。 1分ごとに受信し、5分ごとにCookieを保存するだけです。実際のビジネス ロジックは、実際には各 Lua ファイルに書き込まれます。メッセージを受信して処理する方法を見てみましょう。
Luaの簡単なビジネスロジックは以下の通りで、メールを受信して対応する処理Luaを呼び出し、処理が完了すれば完了です。
以上がGolang と lua を使用して勤務ロボットを実装する方法を教えますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。