[解決済み] タイマートリガーのAzure Functionをローカルに一度だけ実行する最も簡単な方法は何ですか?
2023-04-03 07:54:18
質問
C# の Azure Functions をいくつか持っていて、スケジュールで実行するために
タイマートリガ
. このように設定しました。
%TimerSchedule%
は、アプリの設定にあるcron式を参照しています。
public static void Run([TimerTrigger("%TimerSchedule%")]TimerInfo myTimer, TraceWriter log)
開発中、Azure Functions Tools for Visual Studio + Azure Functions Core Tools を使って、ローカルで関数を実行したいことがよくあります。しかし、ローカルで関数をデバッグするためにF5を押すと、(通常は)すぐに実行されません。代わりに、タイマーのスケジュールに従って、次の発生を待ち始めます。したがって、たとえば、私の cron 式が毎日午後 8 時に実行するように言っている場合、私のマシン上で関数が実際に実行されるには午後 8 時まで待つ必要があります。
そこで質問です。 関数をローカルで一度実行させる最も簡単で最良の方法は何でしょうか?
私が試したこと、考えたこと。
-
ローカル開発のために、より頻繁なタイマースケジュールを使用する。
- これはOKですが、完璧ではありません。非常に頻繁に実行されない限り、まだ少し待たなければなりませんし、非常に頻繁に実行される場合、関数が複数回実行されるかもしれません。これは私が今やっていることです。
-
関数を直接呼び出すコンソールアプリまたはユニットテストを書きます。
Run()
メソッドを呼び出します。-
を提供しなければならないので、これは100%簡単なことではありません。
TimerInfo
とTraceWriter
の引数をRun()
- であり、それに関するドキュメントは驚くほど少ないことがわかりました。
-
を提供しなければならないので、これは100%簡単なことではありません。
マイクロソフトの Azure Functionsでコードをテストするための戦略 のページは、このトピックに関してあまり役に立ちません。 その他の をテストする方法としてタイマトリガーを挙げているだけです。
完璧な世界では、F5 を押すと関数がすぐに一度だけ実行されます - まるで通常の .NET アプリを開発しているように。
どのように解決するのですか?
私も同じ質問があり、DEBUG-flagを使用して、デバッグ中のみRunOnStartupを行うようにしました。
public static void Run(
[TimerTrigger("* 0 7 * * 1-5"
#if DEBUG
, RunOnStartup=true
#endif
)]TimerInfo myTimer, TraceWriter log)
{
関連
-
[解決済み】C#で四捨五入する方法
-
[解決済み】C#におけるtypedefの等価性
-
[解決済み】Swashbuckle/Swagger + ASP.Net Core: "Failed to load API definition" (API定義の読み込みに失敗しました
-
[解決済み】ランダムなブーリアンを生成する最速の方法
-
[解決済み】WSACancelBlockingCallの例外について
-
[解決済み】画像のペイントにTextureBrushを使用する方法
-
VSでscanfエラーを恒久的に解決するには、ソースファイルを作成し、自動的に#define _CRT_SECURE_NO_WARNINGS 1を追加してください。
-
[解決済み】スレッド終了またはアプリケーションの要求により、I/O操作が中断されました。
-
[解決済み] C#のオートプロパティに初期値を与える最良の方法は何ですか?
-
[解決済み】Azure WebjobsとAzure Functionsの比較:選び方
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】指定されたキャストが有効でない?
-
[解決済み】GDI+、JPEG画像をMemoryStreamに変換する際にジェネリックエラーが発生しました。
-
[解決済み】C#はJavaのcharAt()と同等?)
-
[解決済み】C# - パスに不正な文字がある場合
-
[解決済み】Socket.Selectがエラー "An operation was attempted on something that is not a socket" を返す。
-
[解決済み】EF 5 Enable-Migrations : アセンブリにコンテキストタイプが見つかりませんでした
-
[解決済み】Visual studio 2019がデバッグ時にフリーズする件
-
[解決済み】OnCollisionEnter2Dが実行されない?
-
[解決済み】C#のequal to演算子でtextとvarcharのデータ型は互換性がない
-
[解決済み】2年前のMSDateを把握する【クローズド