2016-10-11 5 views
1

私は、(私はSignalR/WebAPIを介して行った)プッシュ通知サービスと将来のタスクランナー/スケジューラを特定の日付/時間またはいくつかの定期的な間隔。スケジューラ/通知サービスの推奨/アーキテクチャ決定

ユースケースの例は、お支払い期日までに支払いがまだ行われていない場合、システムが「管理者」に電子メール/ SMSを「消費者」に送信する支払いリマインダサービスです。リマインダーは、さらに日付にスヌーズされるか、または手動または自動で新しいデータラインに更新されます。

は、潜在的にスケジューラサービスが...

などの設定マニュアルトドス、経常リマインダ、今後の電子メール/ SMSの送信日のように、何か他のもののために使用することができます...そして、日時などあたりのニュースレターの電子メールの潜在的に数千人で探しています

私はいくつかのオプション

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

に見てきました - >実行asp.netまたはWindowsサービスとしてのいずれかすることができます。

は - >スケジュールされたタスク/定期的なサポートなど...

持っています - asp.netサービスと相まって場合>は、私には過度に複雑、そしておそらく効率的ではないようだが、スケーラブルではないが、する必要があります将来の校正用に設計してください...余分な店舗を設置する必要がありますか?

2)

タスクスケジューラ - > Azureのスケジューラ

- 私の焦土/フェニックス展開シナリオ

3)外部サービス

と>とても現実的ではありません

- > AWS Cloudwatchスケジューラ/イベント(SNS /ラムダなども起動できます)

- >非常に優れたデカップリングソリューションのようですが、メンテナンス/テスト/耐久性に問題がありますか?ソリューションに応じて適切に設定する必要があります...知らんなど...

4)イベントドリブンメッセージバスをテストする「12ファクターのApp」のPROD/devのパリティを取得する方法を

- >バスは良好な耐久性と信頼性を備えていますが、取り消したい場合は複雑になります。

- > SQSには15日間の制限しかないと思うのですが、将来のスケジュールでは制限があります。

5)俳優モデル

- > Akka.netまたはオーリンズは、セットアップが簡単なようだが、まだそれを使用しますが、法案に合うものをたくさん持っていると思われる、小さな役者していませんスケジューラー、高性能、より多くの仕事のためのクラスターを追加しやすい(すべてのロジックはアクターごと、残りは構成)、ローカルで優れた再現が容易...単一の作業単位の俳優が私にとって意味をなさない。

- >それは経験はありませんが、私のシナリオでは過度のことでしょうか?本格的なスケジューラのためにも、将来の良い証拠のように見えます。

- > Neg。まだドットネットコアサポートはありません

他の提案は歓迎します...私は2週間で完了する必要があります。

P.S. Google Nowのリマーケティング担当者のアーキテクチャーが本当に不思議です...これは1つのクールなサービスです。「いつか何かをするように教えてください。

答えて

2

オルレアンには「リマインダ」(「パーシスタントタイマー」とも呼ばれる)というメカニズムが組み込まれていることに気づきましたか?

http://dotnet.github.io/orleans/Documentation/Advanced-Concepts/Timers-and-Reminders.html

.NETのコアのサポートが来ています。

+0

私はそれが非Azure環境でそれを設定することは容易ではないと聞いた....私はオルレアンを調べる時間がないと思うが、コメントありがとう – Joshscorp

+0

@Joshscorpそれを実行する方法がありますオンプレミス - https://dotnet.github.io/orleans/Tutorials/On-Premise-Deployment.html – DixonD