2

プッシュ通知サービス (SignalR/WebAPI 経由で行った) と、特定の日時または定期的な間隔で実行できる将来のタスク ランナー/スケジューラーを作成する必要があります。

ユース ケースの例としては、支払いリマインダー サービスがあります。支払いが期日までに支払われない場合、システムは「管理者」に通知を送信し、「消費者」に電子メール/SMS を送信します。リマインダーは、手動または自動で、別の日付にスヌーズしたり、新しい日付変更線に更新したりできます。

スケジューラ サービスは、手動の Todo の設定、定期的なリマインダー、将来の電子メール/SMS 送信日など、他の用途にも使用できる可能性があります。また、日時ごとに潜在的に数千のニュースレターの電子メールを見ています。

私はいくつかのオプションを調べました

1) Quartz.net / Hangfire / バックグラウンド タスク

--> asp.net または Windows サービスとして実行できます。

--> スケジュールされたタスク/定期的なサポートなどがあります...

--> 私には非常に複雑に思えます。また、スケーラブルではない asp.net サービスと組み合わせると、おそらく効率的ではなく、将来の校正のために適切に設計する必要があります...追加のストアをセットアップする必要がありますか?

2) タスクスケジューラ

--> 私の焦土/不死鳥の展開シナリオではあまり実現可能ではありません

3) 外部サービス

--> Azure スケジューラ

--> AWS Cloudwatch スケジューラ / イベント (SNS / Lambda などもトリガーできます...)

--> 非常に優れた分離ソリューションのようですが、メンテナンス/テスト/耐久性が問題になる可能性がありますか? ソリューションに応じて適切にセットアップする必要があります...「12 Factor's App」の製品/開発パリティテストなどを取得する方法がわからない...

4) イベント駆動メッセージバス

--> バスは耐久性や信頼性に優れていますが、キャンセルしたい場合などは複雑になります..?

--> 今後のスケジュールの制限、SQS は 15 日間の制限しかないと思います。

5) アクターモデル

--> Akka.net または Orleans、セットアップは簡単に思えますが、まだ使用していませんが、特定のタスクを実行する小さなアクター、スケジューラー、高性能、クラスターの追加が容易な、目的に合ったものがたくさんあるようですより多くのジョブ (すべてのロジックはアクターごと、残りは構成) の場合、ローカルで簡単に再現でき、優れています...単一の作業単位アクターは私にとって非常に理にかなっています。

--> 経験はありませんが、私のシナリオではやり過ぎでしょうか? 本格的なスケジューラーにとっては、将来的にも良いことのように思えます。

--> 否定。dotnet コアのサポートはまだありません

その他の提案は歓迎します...2 週間以内に完了する必要があります。

PS Google Now Reminders のアーキテクチャとは何なのか本当に疑問に思っています。

4

1 に答える 1

3

Orleans には「リマインダー」(「パーシステント タイマー」とも呼ばれる) と呼ばれる組み込みのメカニズムがあることに気付きましたか?

https://dotnet.github.io/orleans/docs/grains/timers_and_reminders.html

.NET Core のサポートが予定されています。

于 2016-10-12T05:03:58.350 に答える