0

Python を使用する大規模な組織がコードを構造化して、彼らの理論の一部を自分のコードに適用できるようにする方法を学ぼうとしています。

現在、私はredditのコードを調べており、アプリの操作の一部として生成された電子メールの送信をどのように実装したかに興味があります. 参照: https://github.com/reddit/reddit/blob/master/r2/r2/lib/emailer.py (電子メール ライブラリ) および https://github.com/reddit/reddit/blob/master/r2 /r2/models/mail_queue.py

mail_queue.py には、何らかの形式の SqlAlchemy テーブルに基づく電子メール キューが含まれていると思います。これはそうですか。それは、テーブルがメモリに保持されていることを意味しますか? 誰かが私のためにこれをもう少し明確にすることができますか?

ダウンアンダーからの歓声。

PS Pythonアプリを構築する方法をよく理解しようとしている人がいれば、私と同じことをすることをお勧めします。他の人のコードを読んで理解することで、私は著しく優れたコードを構築し、書くことができました.. :) オープンソースのものは素晴らしいです!

4

1 に答える 1

0

従来、電子メールサーバーのメールキューは、ある種のディスクストレージでした。これは、メールが失われる可能性を最小限に抑えるためです。たとえば、メールサーバーはメッセージを受信し、メッセージ全体が同期書き込みを介してディスクに正常に書き込まれるまで、送信メールクライアントに正常なリターンコードを送り返しません。

はい、redditコードはSqlAlchemyを介してデータベースを電子メールデータストアとして使用しています。

テーブルがメモリに保存されている限り、そうなるとは思いませんでした。SqlAchemyのドキュメントを読むと、TableオブジェクトはSqlAlchemyであり、システムをサポートしているデータベースの基になるテーブルへのプロキシにすぎません。一般に、システムが処理するメッセージの数、電子メールメッセージの大きさ、および一時的なメール送信の場合にキューに入れる必要のあるメッセージの数がわからないため、テーブルをメモリに保存する必要はありません。失敗。

于 2012-10-26T10:51:54.820 に答える