特定の時間の間にCronExpressionを実行します(ただし、正時には実行しません)。


1

私はCronExpressionsの設定に関してここにかなりの数の質問を見ました。しかし、それらはすべて、実行のための時間枠として正確な時間(分指定なし)を持っているようです。

午前7時37分から午後9時13分までの間、毎日5分ごとにsayを実行するようにCronExpressionを設定する方法はありますか? 7AM - 9PMの設定は簡単です。しかし、もっと詳細なスケジュールで実行する方法があるかどうか(おそらくサポートされていないかもしれません)がわからないようです。

私はユーザーがカスタムスケジュールを指定できるようにするアプリケーションを持っています。特定の時間をどのようにしたらよいかわからないので、今は一番近い「丸1時間」に切り上げます。

だから、例えば、これは動作します

0 0/5 2-16? * 1-7 //毎週午前2時から午後4時まで5分ごとに実行

それで、実行したいとしたら、式はどうなるでしょう。

午前2時19分から午後4時13分の間に5分ごとに?

それともこれは不可能です(複数のCronExpressionsを作成してそれを本当に面倒なimoにする以外)。

任意の助け、大歓迎!

回答:


0

入ったら man 5 crontab あなたは以下の例を見るでしょう: -

   # Run on every second Saturday of the month
   0 4 8-14 * *    test $(date +\%u) -eq 6 && echo "2nd Saturday"

あなたのケースにこれを適用する: -

   0 0/5 2-16 ? * 1-7  test $(date +\%R) \> 02:19 -a $(date +\%R) \< 16:13 && YourCommand

あるいは、 YourCommand スクリプトです、あなたはそれに時間のテストを組み込むことができます。

コマンドは1時間の5分の倍数で呼び出されるので、 > そして >= 同等である(同様に < そして <= ;そうでなければ、テスト境界を調整する必要があるかもしれません(例: >= 02:18test サポートしていません >= そして <= 文字列比較で。


詳しい回答ありがとうございます。私はおそらく私がJavaでこれをやっていると言ったはずです。だから私はorg.quartz.CronScheduleBuilderオブジェクトを取り込むTriggerBuilderクラスを使っています(これを私の "CronExpression"に渡しています)。だからあなたが私に送った例のフォーマットは無効です。私はこのCronExpressionフォーマットを使った作業を始めて約3〜4日です。これまでに聞いたこともないでしょう。 Triggerの外側の時間枠を監視して、開始時間まで作成しないでください。その後削除しますか。
elspoono

うーん...私が探しているソリューションはJavaで見つけたかもしれません。
elspoono

cron コマンド文字列は、次のようにシェルコマンドでスケジュールされています。 bash -c 'test $(date +\%R) \> 02:19 -a $(date +\%R) \< 16:13 && YourCommand' (デフォルトのシェルによると) YourCommand シェルが認識する任意のコマンドです。 java RunString
AFH
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.