.Net 5 Web APIで、大量の電子メールとSMSを送信するバックグラウンドタスクを実行したいと思います。BackgroundServiceから継承するサービスを作成し、それを次のようにStartup.ConfigureServicesメソッドのDIコンテナーに追加できることはわかっています。
services.AddHostedService<EmailAndSmsService>();
しかし、それはサービスをすぐに実行します-つまり、アプリケーションの起動時に。APIがフロントエンドからリクエストを受け取ったときにサービスを実行したいと思います。つまり、コントローラーのアクションメソッドです。
Microsoftのドキュメントで「ホストされたサービスを使用したバックグラウンドタスク」を見てきましたが、間違いがなければ、これを行う必要があります(「バックグラウンドタスクでスコープサービスを使用する」というタイトルのセクションを参照してください)。
これは正しいです?基本的に、実際の作業を行うサービスと実際の作業を行うサービスを呼び出すサービスの2つのサービスを作成する必要がありますか?私は正しい道を進んでいますか?
ありがとう
「ジョブ」を送信できる「キューに入れられたバックグラウンドサービス」を確認する必要があります。このサービスは、バックグラウンドキューでそれらのジョブを実行します。
ワークフローは次のようになります。
BackgroundService
これがどのように機能するかについての非常に長い説明です:https://stackoverflow.com/a/63429262/1204153
これは私がしばらく前に作った例です:https://github.com/sonicmouse/ComputationService
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加