Facebook と同様に、自分の Web サイトに通知システムを構築したいと考えています。通知はリアルタイムである必要はありません。
これは私が念頭に置いていることです:
ユーザーがイベントを作成します (新しい写真のアップロード、写真のような新しいコメントの追加、またはすべてのユーザーへの管理アラートさえも)
5 分ごとに cronjob を実行して、通知テーブルに通知を追加します。
id|id_content|type_of_content_enum|affected_user_id|date|seen_bool
cronjob は、通知の種類ごとにいくつかの機能を実行します。次に例を示します。
add_photos_notification()
// この関数は、過去 5 分間に追加されたすべての写真をチェックし、この人物をフォローしているユーザーごとに通知テーブルに行を挿入します。この機能は、過去 5 分間に追加されたすべての写真をグループ化するため、フォロワーは同じ種類のコンテンツについて多くの通知を受け取りません。次のような通知が表示されます: ユーザー X がプロフィールに Y 枚の写真を追加しました。add_admin_notification()
// この関数は、過去 5 分間にサイトの管理者によって追加されたすべてのニュースをチェックし、システム上の各ユーザーについて、通知テーブルに行を挿入します ...
これは通知システムを構築するための正しいアプローチですか?
関数が過去 5 分間のイベントを取得する 5 分ごとに cron を実行して、イベントを見逃すことは可能ですか?
安全のために、「通知済み」フィールドが真ではないすべてのイベントをチェックする代替手段があると思いますか? 'notified' = false のイベントを取得する同じ関数は、その通知を通知テーブルに追加した後、true に更新します。
ありがとう、