Webhook を受信して処理するために使い始めたばかりの Ubuntu ボックス (ngnix と uwsgi) に小さな Python フラスコ Web サーバーがあります。Webhook 処理の一部に電子メールの送信が含まれる場合がありますが、これにより遅延が発生し、Webhook を送信するサーバーへの応答がブロックされることに気付きました。
これを軽減する方法を研究しているときに、関数呼び出しをキューに入れ、すぐに Webhook に応答できるpython-rq (別名 rq) を発見しました。テストでは、これはうまく機能します。
サーバーでテストしており、rq を開始するrqworker
には、Web サイトと同じディレクトリで実行する必要があります。これはテストには最適ですが、実行を続けるためだけにサーバーにログインして rq を開始する必要はありません。
私が遭遇したいくつかのアイデア:
- python-rq ドキュメントにはスーパーバイザーについて言及されていますが、http://python-rq.org/patterns/supervisor/ですが、それほど多くのオーバーヘッドが必要かどうかはわかりません。
- 再起動を使用して、単純な cron ジョブでうまくいくでしょうか?
これは小さな内部専用サーバーです。私はそれを過度に設計したくはありません (私はすでにその方向に忍び寄っているように感じます)。
Web サイトのアプリケーション ディレクトリで rqworker を単独で実行するように設定するにはどうすればよいですか?