アプリケーションの起動時やタイマーではなく、オンデマンドでバックグラウンドサービスを実行する方法

ファブリシオロドリゲス

.Net 5 Web APIで、大量の電子メールとSMSを送信するバックグラウンドタスクを実行したいと思います。BackgroundServiceから継承するサービスを作成し、それを次のようにStartup.ConfigureServicesメソッドのDIコンテナーに追加できることはわかっています。

services.AddHostedService<EmailAndSmsService>();

しかし、それはサービスをすぐに実行します-つまり、アプリケーションの起動時に。APIがフロントエンドからリクエストを受け取ったときにサービスを実行したいと思います。つまり、コントローラーのアクションメソッドです。

Microsoftのドキュメントで「ホストされたサービスを使用したバックグラウンドタスク」を見てきましたが、間違いがなければ、これを行う必要があります(「バックグラウンドタスクでスコープサービスを使用する」というタイトルのセクションを参照してください)。

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/host/hosted-services?view=aspnetcore-5.0&tabs=visual-studio

これは正しいです?基本的に、実際の作業を行うサービスと実際の作業を行うサービスを呼び出すサービスの2つのサービスを作成する必要がありますか?私は正しい道を進んでいますか?

ありがとう

アンディ

「ジョブ」を送信できる「キューに入れられたバックグラウンドサービス」を確認する必要があります。このサービスは、バックグラウンドキューでそれらのジョブを実行します。

ワークフローは次のようになります。

  1. 呼び出し元は、いくつかのパラメーターを使用してサービスに要求を送信します
  2. サービスは「ジョブ」オブジェクトを生成し、202(承認済み)応答を介してIDをすぐに返します
  3. サービスは、このジョブを、によって維持されているキューに配置します。 BackgroundService
  4. 発信者は、このジョブIDを使用して、ジョブステータスを照会し、実行された量と残りの量に関する情報を取得できます。
  5. サービスはジョブを終了し、ジョブを「完了」状態にして、キューでの待機に戻り、さらにジョブを生成します。

これがどのように機能するかについての非常に長い説明です:https//stackoverflow.com/a/63429262/1204153

これは私がしばらく前に作った例です:https//github.com/sonicmouse/ComputationService

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

android起動時にアプリケーションをバックグラウンドで実行する方法

分類Dev

マルチスレッドアプリケーションでのオプションのデバッグ出力-つまり、デッドロックやバグを把握するためではなく、*クライアント用*を意味します。

分類Dev

アプリを閉じてバックグラウンドタイマーを実行する方法Swiftでオーディオサンプルを再生する

分類Dev

esp32 arduino(ステッピングモーターコントローラーアプリケーション)のオンデマンドでハードウェアタイマー(割り込み用)を削除して再起動する方法

分類Dev

GUIベースのアプリケーションはバックグラウンドでシェルコマンドを実行しますか?

分類Dev

GUIベースのアプリケーションはバックグラウンドでシェルコマンドを実行しますか?

分類Dev

BREWアプリケーションをバックグラウンドで起動する方法は?

分類Dev

アプリケーションが使用中またはバックグラウンドで停止時に開始するアプリでタイミングプロセスを正しく実行するにはどうすればよいですか?

分類Dev

バックグラウンドでタスクを実行するiOSアプリケーション

分類Dev

URL「/セッション」は有効なリソースにマッピングされませんでした| Javaを使用してwinAppDriver / Windowsアプリケーションのドライバを使用してデスクトップアプリケーションのテストを実行するには?

分類Dev

J2MEアプリケーションをバックグラウンドで実行する方法は?

分類Dev

閉じたアプリケーションをバックグラウンドで実行する方法は?

分類Dev

起動時とバックグラウンドで実行されるサービスを作成する方法

分類Dev

バックグラウンドでアプリケーションプロセスを起動する

分類Dev

イオンアプリのタイマー(setInterval)は、バックグラウンドでしばらくするとスリープ状態になります

分類Dev

サブプロセスコマンドを実行して、バックグラウンドPythonでnodejsサーバーを起動する方法

分類Dev

コマンドライン/ Webサービスの両方でJavaアプリケーションを実行することは可能ですか?

分類Dev

コマンドラインでサーバーを起動するか、アプリケーション内でサーバーを起動するか

分類Dev

バックグラウンドのAndroidサービスからアプリケーション固有のモーションデータを取得する

分類Dev

単一のグラフィカルアプリを実行するためだけに、デスクトップまたはウィンドウマネージャーなしで小さなディストリビューションが必要

分類Dev

どのようにJAVAを使用してバックグラウンドで実行中のアプリケーションを除いて、タスクマネージャのように、現在実行中のアプリケーションのリストを取得するには?

分類Dev

Google Playサービスは、ユーザーの操作なしでバックグラウンドでアプリケーションをインストールする方法

分類Dev

サービスマーケットプレイス経由でダウンロードしたアプリのルータを実行する方法

分類Dev

Tomcatサーバーで実行されているJavaアプリケーションにドメイン名をマッピングする方法

分類Dev

コンソールアプリケーションのバックグラウンドでタスクを永続的に実行する

分類Dev

Symfonyアプリケーションのバックグラウンドタスクのようにコマンドを実行するにはどうすればよいですか?

分類Dev

起動時にバックグラウンドアプリケーションを自動的に開始する

分類Dev

VBAパワーポイント、プレゼンテーション全体でバックグラウンドで時限タスク/マクロを実行

分類Dev

UEFIで起動されたLinuxマシンのビデオモードがグラフィックス出力プロトコル(GOP)であるかユニバーサルグラフィックスアダプター(UGA)であるかを検出する方法は?

Related 関連記事

  1. 1

    android起動時にアプリケーションをバックグラウンドで実行する方法

  2. 2

    マルチスレッドアプリケーションでのオプションのデバッグ出力-つまり、デッドロックやバグを把握するためではなく、*クライアント用*を意味します。

  3. 3

    アプリを閉じてバックグラウンドタイマーを実行する方法Swiftでオーディオサンプルを再生する

  4. 4

    esp32 arduino(ステッピングモーターコントローラーアプリケーション)のオンデマンドでハードウェアタイマー(割り込み用)を削除して再起動する方法

  5. 5

    GUIベースのアプリケーションはバックグラウンドでシェルコマンドを実行しますか?

  6. 6

    GUIベースのアプリケーションはバックグラウンドでシェルコマンドを実行しますか?

  7. 7

    BREWアプリケーションをバックグラウンドで起動する方法は?

  8. 8

    アプリケーションが使用中またはバックグラウンドで停止時に開始するアプリでタイミングプロセスを正しく実行するにはどうすればよいですか?

  9. 9

    バックグラウンドでタスクを実行するiOSアプリケーション

  10. 10

    URL「/セッション」は有効なリソースにマッピングされませんでした| Javaを使用してwinAppDriver / Windowsアプリケーションのドライバを使用してデスクトップアプリケーションのテストを実行するには?

  11. 11

    J2MEアプリケーションをバックグラウンドで実行する方法は?

  12. 12

    閉じたアプリケーションをバックグラウンドで実行する方法は?

  13. 13

    起動時とバックグラウンドで実行されるサービスを作成する方法

  14. 14

    バックグラウンドでアプリケーションプロセスを起動する

  15. 15

    イオンアプリのタイマー(setInterval)は、バックグラウンドでしばらくするとスリープ状態になります

  16. 16

    サブプロセスコマンドを実行して、バックグラウンドPythonでnodejsサーバーを起動する方法

  17. 17

    コマンドライン/ Webサービスの両方でJavaアプリケーションを実行することは可能ですか?

  18. 18

    コマンドラインでサーバーを起動するか、アプリケーション内でサーバーを起動するか

  19. 19

    バックグラウンドのAndroidサービスからアプリケーション固有のモーションデータを取得する

  20. 20

    単一のグラフィカルアプリを実行するためだけに、デスクトップまたはウィンドウマネージャーなしで小さなディストリビューションが必要

  21. 21

    どのようにJAVAを使用してバックグラウンドで実行中のアプリケーションを除いて、タスクマネージャのように、現在実行中のアプリケーションのリストを取得するには?

  22. 22

    Google Playサービスは、ユーザーの操作なしでバックグラウンドでアプリケーションをインストールする方法

  23. 23

    サービスマーケットプレイス経由でダウンロードしたアプリのルータを実行する方法

  24. 24

    Tomcatサーバーで実行されているJavaアプリケーションにドメイン名をマッピングする方法

  25. 25

    コンソールアプリケーションのバックグラウンドでタスクを永続的に実行する

  26. 26

    Symfonyアプリケーションのバックグラウンドタスクのようにコマンドを実行するにはどうすればよいですか?

  27. 27

    起動時にバックグラウンドアプリケーションを自動的に開始する

  28. 28

    VBAパワーポイント、プレゼンテーション全体でバックグラウンドで時限タスク/マクロを実行

  29. 29

    UEFIで起動されたLinuxマシンのビデオモードがグラフィックス出力プロトコル(GOP)であるかユニバーサルグラフィックスアダプター(UGA)であるかを検出する方法は?

ホットタグ

アーカイブ