2016-11-18 4 views
0

今はLinux環境でjava cronジョブを実行しています。パティのLinuxコマンドでジョブの開始/停止を行っています。自動的に自動的にスケジュールされます。しかし、私の要件は、UIからSpringのWebアプリケーションのようなcronジョブを制御したいのです。ジョブの開始、ジョブの停止、ジョブの現在の実行状態などです。ライブラリがありますか?提案してください。ありがとうございました。Web appicationからLinuxのJava cronジョブを制御するには?

+0

http://stackoverflow.com/questions

+0

私は同様の要件このをご覧ください –

+0

http://stackoverflow.com/questions/20546403/spring-scheduler-change-cron-expression-dynamically/40692784#40692784 私はすでに同じ要求のために答えました –

答えて

0

あなたはGitHubの上の私たちのQuartzDesk Executor(QE)フリーでオープンソースのアプリをチェックすることもできます。 QEは、スプリングベースのJava Webアプリケーションは、人気のクォーツスケジューラAPIの上に構築され、アウト・オブ・ボックスには、タスク/ジョブの次の種類の実行をスケジュールすることができますされています

  • ローカル実行可能なアプリケーションとスクリプト(例:* .sh、* .exe、* .cmd、* bat)。
  • リモート実行可能アプリケーションとスクリプト(SSH経由)。
  • 外部化されたJava Quartzジョブ。
  • JDBCクエリ。
  • HTTP(S)POSTリクエスト。

QEはオープンソースなので、拡張して独自のカスタムタイプのジョブを追加できます。

QEは、私たちのQuartzDeskジョブ管理および監視プラットフォームで使用され、追加の機能と適切なGUIを提供します。 QuartzDeskプラットフォームに試してみると、永続的実行履歴、ビジュアルジョブ実行統計、ジョブ実行通知(電子メール、インスタントメッセージ、SNMPトラップ、Webサービス呼び出し)、ジョブチェーンなどが得られます。

QuartzDesk実行されたジョブによって生成されたログメッセージをインターセプトできます。これらのログメッセージは現在実行中のすべてのジョブで表示され、実行中のジョブ(!)を現在確認できます。実行履歴ビューには、完了したすべてのジョブ実行のログメッセージが表示されます。 OS固有のジョブ(シェルスクリプト、実行可能コマンドなど)の場合、QuartzDeskはこれらのジョブによって生成されたメッセージを標準出力およびエラー出力で傍受することができます。

これは、それがQEインスタンスに接続されているものQuartzDesk GUI、であるようになっています。私はその中で、ほぼ同じ要件の一見のために答えている

QE instance in the QuartzDesk GUI

0

はい、チェックアウトがあります:http://www.quartz-scheduler.org/

それはあなたが設定する3つのまたは4 SQLテーブルを持っており、彼らは次回に実行されますときにあなたは、すべてのジョブ、それらの状態を一覧表示することができます、など

同じようにクイックルック例:

List<HashMap<String,Object>> jobs = new ArrayList<>(); 
Scheduler sch = MyScheduler.getScheduler(); 
     for (String groupName : sch.getJobGroupNames()) { 
     for (JobKey jobKey : sch.getJobKeys(GroupMatcher.jobGroupEquals(groupName))) { 
      String jobName = jobKey.getName(); 
      String jobGroup = jobKey.getGroup(); 
      List<Trigger> triggers = (List<Trigger>) sch.getTriggersOfJob(jobKey); 
      Trigger tg = triggers.get(0); 
      Date nextFireTime = tg.getNextFireTime(); 

      System.out.println("[jobName] : " + jobName + " [groupName] : " + jobGroup + " - " + nextFireTime); 

      HashMap<String,Object> jb = new HashMap<>(); 
      jb.put("triggerKey", tg.getKey()); 
      jb.put("triggerGroup", tg.getKey().getGroup()); 
      jb.put("triggerName", tg.getKey().getName()); 
      jb.put("nextFireTime", nextFireTime); 
      jb.put("trigger_state", sch.getTriggerState(triggers.get(0).getKey())); 
      jobs.add(jb); 
     } 
    } 
+0

#Pedro Batista、Linux環境からcronを移動するつもりはありません。彼らはそこでしか走らない。 Java Webアプリケーションからそれらを制御する必要があります。これは動作しますか? – NullPointerException

+0

ああ、そうは思わない。クォーツは「cronのような」表現もサポートしていますが、2つは異なっています。 –

関連する問題