-2

初めての投稿ですが、これまでスタックオーバーフローから多くの素晴らしい回答とヒントを得ることができました。これは危機一髪だった -> Facebook、Gmailはどのようにリアルタイム通知を送信するのですか? 正確ではないので、一緒にブレインストーミングしましょう。

サイトに変更が加えられたときにメール通知を行う CMS システムがあります。すべてが非常にうまく機能しますが、誰かが別の簡単な変更を行った場合、たとえばタイプミスを修正した場合に、複数の通知を防止したいと考えています。明らかに、php mail() を使用します。

私は 2 つの方法で苦労しまし. 3 つ目は電子メール通知の実装に着想を得たものですが、一度に大量の電子メールを送信するのはあまり魅力的ではありません。

  1. タイムスタンプを使用して、最後の 5 分間に別の変更が行われたかどうかを確認します。

  2. 最後の変更を記録し、新しい変更と比較します。変更をどこかに保存する必要があるため、同時にバックアップに役立つ可能性がありますが、テキストが長くなる可能性があり、SQL検索を行うのは面倒です。そうじゃない?

  3. cron を使用して、x 分ごとに変更を送信します...それが適切な解決策だと思うなら、私を納得させてください。

あなた自身のアイデア、コメント、または提案はありますか?ご意見をお待ちしております。登録したので、できる限りお手伝いします。

乾杯、すべてのllt

4

1 に答える 1

0

cron ジョブについては、タイミング、DB、余分なファイルなどをチェックするための php 処理の負担の一部を取り除くので、これは常に良い代替手段です。 10 ユーザー、それはやり過ぎかもしれません。1000 の場合は、郵送自体のプロセスを最適化する必要がありますが、それでも優れたオプションです。

タイムスタンプについては、変更を求めてデータベースを常にチェックすることは、システムにとって時間がかかり、DB に過負荷がかかります。投稿の変更専用のテーブルがない限り、システムの作業はそれほど多くなく、情報を使用するたびに古いレコードを消去できます。

投稿自体の最後の変更を記録し、新しい/古いバージョンと常に比較すると、多くのユーザーがいる場合、システムに圧倒される可能性があります.

そこで、id_post、timestamp_of_the_change、mail_sent などの投稿の変更専用のテーブルを使用します。次に、そのテーブルを更新した後、投稿が直前に変更されたかどうかを確認します。変更があった場合は、タイムスタンプを更新しますが、送信の最後のプロセスがない限り、新しいメールは送信しません。メールが失敗しました。これが、そこで 3 番目のフィールドを使用するものです。

さよなら

于 2012-10-18T06:43:35.940 に答える