2017-08-24 28 views
2

毎月最終日に実行されるcron式を作成する必要があります。私はwebjobをスケジューリングするためにこれが必要です。毎月最終日に実行されるCron式

私はこの表現を使用していますが、Webjobは毎月の最終日を見つけるためにLを取っていません。

"0 0 11 L * *"

ありがとうございます。

+0

「L」の代わりに「最後」を使用してみましたか? –

+0

この問題は解決しましたか、さらに支援が必要ですか? –

答えて

1

あなたの説明によると、私はこの問題を私の側でチェックしました。簡単な方法については、まず次のように私は紺碧のポータル上でそれをテストした:

enter image description here

注:私のテストに基づいてを、{day}ための特殊文字(?LW)が無効です。

はまた、私は、0/5 * * L * *表現で私の側にwebjobを走った後、私は次のエラーを得た:

Unhandled Exception: Microsoft.Azure.WebJobs.Host.Indexers.FunctionIndexingException: Error indexing method 'Functions.CronJob' ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. --->NCrontab.CrontabException: 'L' is not a valid [Day] crontab field expression. ---> NCrontab.CrontabException: 'L' is not a valid [Day] crontab field value. It must be a numeric value between 1 and 31 (all inclusive).

は、その後、私は、このサンプルTimerSamples.csに続き、我々は唯一のビルドでDailyScheduleをオーバーライドすることがわかっそしてWeeklyScheduleがあなたの要求を満たすことができませんでした。あなたの目的を達成するためにあなたのカスタムスケジュールを構築する必要があると思われました。TimerSchedule

AFAIK、Azure Schedulerを使用して、Webjobでcron式を設定するだけでなく、スケジュールに合わせてWebjobを起動することもできます。ここに私のテストは、あなたがそれを参照することができ、次のとおりです。

  • そのごwebjobエンドポイントにアクションの設定ポイントを設定、あなたのAzure Schedulerを追加し、azure portal

  • ログをトリガーマニュアルとしてごwebjobを設定します許可するとトリガーされます。詳細については、あなたは次のようにその後のスケジュールを設定するには、このtutorial

  • スケジューラジョブを追加する方法についてのセクションを参照してください可能性:

    enter image description here

また、フルのcron表現のサポートのために、問題はAzure/azure-webjobs-sdk-extensionsにフィードバックを追加することができます。

0

現在、「L」はサポートされていません。私たちはncrontabを使ってcron式を解析し、これはサポートされていないことに気付きました:atifaziz/NCrontab#9

私はこれを見ました:28-31または毎月のcron式を設定し、関数自体が実際に月の最後の日かどうかをチェックします。そうでない場合は、終了します。もしそうなら、続行してください。