問題タブ [tornado-motor]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python カスタム ロガー
以下のリンクからカスタムロガーを作成するための手順を実際に実行しました。
Python: すべてのモジュールにわたるカスタム ロギング
しかし、実際にログをMongodbに保存し、それをプルしてフロントエンドに投稿するにはどうすればよいですか.
python - Motor for python tornado は Mongodb への ssl 接続を受け入れますか?
ドキュメントが表示されず、機能させることができません。
私はpymongoに類似したアクションを実行しています:
したがって、データベースには間違いなくデータが入力されているため、レコードを取得する必要がありますが、これからはまったく結果が得られません。
A. Jesse Jiryu Davisの回答の編集
最後から 2 番目の行はコメント アウトされ、「tornado.ioloop.」最終行の先頭に追加
mongodb - Tornado 埋め込みコルーチンとデータベースへのデータ保存
私が使用しているスタックには、tornado(async) と mongodb(motor) が含まれています。リクエスト データを処理するための次のアルゴリズムがあります。
- 着信リクエストからのデータは、イベント固有のコレクションに保存されます
- データは統合イベント コレクションに保存されています
リクエスト ハンドラのコードは次のとおりです。
そして、これがリクエストハンドラーから呼び出されるメソッドのコードです
すべて_save_%smth%
は単純なモーター CRUD アクションであり、関数呼び出しでカプセル化され@engine
、次のようにデコレータでラップされています。
そのため、リクエスト データは異なるコレクションに2 回保存されます。save_entity 関数の「特定のコレクション」と、 save_event関数の「ユニバーサルコレクション」です。しかし、実際には、多くの場合(50% のケース) が失われ (データが保存されず)、2 回目の保存が実行されます。
すべてのデータ処理と検証は前に行われるため、mongo にスローされたデータが適切で有効であると仮定します。
だから私は、そのような状況がどのように起こり得るかを理解しようとしています。私の推測では、save_entity 関数の設計が不適切であり、いくつかの組み込み関数が原因で、要求自体が終了し、データがデータベースに保存されないだけです。それは可能性が?
UPDは製品コードを追加したため、状況がより明確になります。私は願っています:) UPD 2はいくつかのCRUDメソッドを追加しました
python - Tornado フレームワークでコルーチン メソッドを呼び出すのは正しい方法ですか?
Tornado アプリケーションに WebSocketHandler があります。これがコードを非同期にする正しい方法かどうかはわかりません。
mongodb - 重複キーを使用した一括挿入で挿入されたドキュメントの数を見つける
私はmongodbデータベースに一括挿入しています。重複キー エラーが原因で、挿入されたレコードの 99% が失敗することがわかっています。データベースに挿入された新しいレコードの数を挿入後に印刷したいと思います。これはすべて、tornado motor mongodb ドライバーを介して Python で行われていますが、おそらくこれはあまり重要ではありません。
例外がスローされたため、bulk_write_result
空です。明らかに、(同時実行の問題を除いて) 挿入の前後に完全なコレクションの数を数えることはできますが、ログファイルの 1 行だけのためにデータベースへの余分なラウンドトリップが好きではありません。実際に挿入されたレコードの数を知る方法はありますか?
python - テール可能な MotorCursor を使用して Motor クライアント接続を閉じると、例外が無視されるのはなぜですか?
私は自分のコードの次の簡略化されたバージョンを書きました:
実行すると、次の 2 つのエラーのいずれかまたはまったく発生しません。
Python 3.4.3、Tornado 4.1、Pymongo 2.8、Motor 0.4.1、および MongoDB 2.6.3 を使用しています。
この問題は、tailable
およびawait_data
オプションがTrue
カーソルの作成時にのみ発生します。
カーソルを閉じないと、Pymongo のエラーも発生します。しかし、テーラブルカーソルなので、明示的に閉じる必要があると思います。
私はそれをグーグルで検索しましたが、運がありませんでした。助言がありますか?
python - Motor を使用してビュー内の複数のドキュメントをクエリする
最新のドキュメントのMotor
チュートリアルでは、次の方法で複数のドキュメントを取得する方法を示しています。tornado.gen.couroutine
次に、出力を同期的に示します。
IOLoop.current().run_sync(do_find)
handler
この関数を変更して、非同期内から呼び出してドキュメントのリストを取得できるようにするにはどうすればよいですか?