2017-04-09 6 views
0

私はユーザーが友人と繰り返しタスクをスケジュールすることを可能にするアプリケーションを作成しています。私はスケジューリングキューを作成する方法を考えています。タスクスケジューラを作成する戦略

最初の方法は、タスクをサーバーで処理させることです。タスクを作成することができ、スケジューリングアルゴリズムがサーバー上で実行され、関係するユーザーに通知が送信されます。このアプローチの問題は、多くのユーザーがサーバーを使用している場合、サーバーに負荷がかかることです。

第2のアプローチは、ユーザーのアプリケーションがバックグラウンドサービスとしてモバイルでタスクスケジューリングを処理できるようにすることです。これは、サーバーに過負荷をかけないように理想的です。この方法の欠点は、通知がユーザーの電話の状態(インターネット接続、オン/オフなど)に依存することです。

2つの方法のどちらが理想的なのでしょうか、あるいはこの問題にアプローチする他の方法はありますか?

答えて

0

ため、私は次のような利点のため、サーバー上でこれを実行しているの熟達になります:1つの通知(例えばメッセージテキスト、スケジュール)のためのすべての詳細を維持する

  • 唯一の場所。これにより、クライアントアプリケーションに異なる通知データを持つクライアントが何らかの形で終わらないようにします。これにより、通知の詳細を更新したり、新しい友達を追加することができれば、ロジックが簡単になります。時には過小評価が、私はそのシンプルさが、アーキテクチャの選択の重要な基準であるべきだと思います。複数のメッセージキューはキューの間で干渉することなく、複数のマシン上に設定することができる -

  • 水平に拡張することは比較的容易であると思われます。

+0

サーバー上で通知の詳細を保持し、スケジューラをアプリケーションに保持することはどうでしょうか。これは、通知データは、私は通知の詳細はまた、スケジューラ、_e.g._通知間隔のための重要な側面が含まれていることを考えていた –

+0

同じままであることを確認してくださいます。そのような場合には、通知間隔は、私の記事で言及した困難に実行して、クライアントアプリケーション上に維持する必要があります。 – qwertyman

+0

最後にあなたが選んだものを分かち合いましょうか?あなたはその決定に満足していますか? – qwertyman