2

nginx変数を更新するには、サーバー内に非同期スケジューラを作成する必要があります。これが何を意味するのか、なぜそれが必要なのか、例を挙げましょう。

次のような構成ファイルを想像してください。

http {
    lua_shared_dict foo 5m;
    server {
        location /set {
            content_by_lua '
                local foo = ngx.shared.foo
                ngx.say(foo:get("12345"))
            ';
        }
    }
}  

共有メモリに存在する変数を指定fooし、すべてのワーカー プロセスがそれにアクセスできるようにしました。私がやりたいことは、lua毎分呼び出されるスクリプトからこれらの値を設定することです。参考までに、 に移動してRedis必要なデータを取得し、この変数を更新します。すべての呼び出しでこれを実行できることはわかっていますcontent_by_luaが、膨大な量のトラフィックに対しては非常に非効率的です。

1分ごとにトリガーされる別のプロセスと、1つのタスクを実行したいと思います。このようなものnginxはありますか、それを助けるモジュールはありますか?

4

2 に答える 2