問題タブ [quartz-scheduler]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
6621 参照

grails - アップグレード後に Grails Quartz Job に Hibernate セッションがないため、LazyInitializationException が発生する

Grails 1.0.4 アプリケーションを 1.1.1 にアップグレードしました。アップグレード後、Quartz ジョブを実行すると例外が繰り返し発生します (Quartz プラグイン 0.4.1 を使用)。プラグインは、サービスを介して Simple および Cron Triggers を使用してジョブを手動でスケジュールするために使用されます (以下の言い換えコード)。

私の BatchJob ジョブは次のように設定されています。

Batch.groovy (ドメイン) の簡略化された定義は次のとおりです。

ただし、schedulerService.schedule()既存の保存されたバッチで呼び出されると、次の例外が発生します。

これを修正するために次のアクションを試みましたが、どれもうまくいきませんでした:

  • static fetchMode = [batchStatus: 'eager']Batch ドメイン クラスで指定しました
  • static mapping = { columns { batchStatus lazy:false }}Batchドメインクラスで使用しました
  • ジョブbatch.attach()を呼び出した後に使用してみましたBatch.get()

BatchJob.triggerNow()これはいくつかの例の 1 つにすぎないため、このインスタンスでは使用できません。他のものはサービスによってスケジュールされていますが、cron ジョブまたはその他の方法でスケジュールされている可能性があります。Grails をアップグレードするときに、Quartz プラグインもアップグレードしたことは言及しておく必要があります。以前の Quartz バージョンは 0.4.1-SNAPSHOT でした (アップグレードされたバージョンでは 0.4.1 だけでした)。

これらの手動でトリガーされた Quartz ジョブで Hibernate セッションを正しく動作させるにはどうすればよいですか?

私はこの質問を grails-user メーリング リストにも送信しました。このようなよりニッチな問題については、メーリング リストがもう少し多くの反応を引き出しているようです。そこから出てきた場合は、この質問を回答で更新します。ここにリンクがあります。

0 投票する
2 に答える
2160 参照

java - アプリケーションをアンデプロイするときに機能をトリガーする

GlassfishでJEE5アプリケーションをデプロイ/アンデプロイ/再デプロイするときに、Java関数を自動的にトリガーしてQuartzスケジューラジョブを停止するにはどうすればよいですか。

0 投票する
3 に答える
1460 参照

java - クォーツで動的にジョブをスケジュールする

事前にジョブクラスを作成する代わりに、いくつかの引数を取るジェネリックジョブクラスを作成したいですか?

すべての設定はデータベースに保存されるため、「refresh」を呼び出すだけで、すべてのジョブが削除され、データベースから再登録されます。

0 投票する
1 に答える
26290 参照

java - クォーツのトリガーを削除

特定のジョブでスケジュールされたトリガーを削除する方法はありますか? トリガーを削除するには、ジョブ全体を削除してから、ジョブとトリガーを再登録するしかないようです。

100 以上のトリガーを持つ可能性のあるジョブがあり、1 つのトリガーを削除するだけでジョブを削除してすべてのトリガーを再登録したくありません。

また、トリガーが設定されるとすぐにスケジューラーがジョブを実行するのを止める方法はありますか?

ありがとう

0 投票する
1 に答える
941 参照

java - Quartz スケジューラのジョブがすぐに起動しないようにする

最初に登録されたときにジョブが実行されないようにする方法はありますか? 1 つのジョブで 100 以上のトリガーを使用できる可能性があり、アプリケーション サーバーの再起動時にすべてのトリガーを実行したくありません。

ジョブ/トリガーをメモリ内に保存し、情報をデータベースに保存しています。そのため、アプリ サーバーが開始されると、すべてのジョブ/トリガーが登録されます。

0 投票する
4 に答える
20195 参照

java - ジョブを再開するQuartz Javaはそれを何度も実行します

私のアプリケーションでは、ジョブを作成し、CronTriggers でスケジュールします。各ジョブには 1 つのトリガーしかなく、ジョブ名とトリガー名は同じです。トリガーを共有するジョブはありません。

この「0/1 * * * * ?」のような cron トリガーを作成すると、ジョブを毎秒実行するように指示すると、問題なく動作します。

次のように呼び出して最初にジョブを一時停止すると、問題が発生します。

そして、50秒後に次のようにジョブを再開します。

私が見ているのは、この 50 秒間、ジョブが要求どおりに実行されなかったことです。しかし、ジョブを再開した瞬間、同時に50回のジョブ実行が見られます!!!

これは不発指示のデフォルト設定によるものだと思いましたが、作成時にトリガーの不発指示をこれに設定した後でも:

同じことが起こります。誰でもこれを修正する方法を提案できますか?

0 投票する
1 に答える
2477 参照

jobs - Quartz で複数のジョブを実行できない

こんにちは、バッチ フレームワークを使用して 2 つのジョブを実行しようとしています。私の問題は、SimpleJobLauncher がジョブ リストの最後のジョブを 1 つだけ実行していることです。ここで私がやっていること: データベースに 2 つのジョブがあり、ジョブの手順も一緒です。データベースからジョブデータを読み取り、次のように処理します

public class BatchJobScheduler { private static Log sLog = LogFactory.getLog(BatchJobScheduler.class); private ApplicationContext ac; private DataSourceTransactionManager mTransactionManager; private SimpleJobLauncher mJobLauncher; private JobRepository mJobRepository; private SimpleStepFactoryBean stepFactory; private MapJobRegistry mapJobRegistry; private JobDetailBean jobDetail; private CronTriggerBean cronTrigger; private SimpleJob job; private SchedulerFactoryBean schedulerFactory; private static String mDriverClass; private static String mConnectionUrl; private static String mUser; private static String mPassword; public static JobMetaDataFeeder metadataFeeder; static { try { loadProperties(); metadataFeeder = new JobMetaDataFeeder(); metadataFeeder.configureDataSource(mDriverClass, mConnectionUrl, mUser, mPassword); } catch (FileNotFoundException e) { } catch (IOException e) { } catch (SQLException e) { } catch (ClassNotFoundException e) { } }

}

public class MailJobLauncher extends QuartzJobBean { /** * Special key in job data map for the name of a job to run. */ static final String JOB_NAME = "jobName"; private static Log sLog = LogFactory.getLog(MailJobLauncher.class); private JobLocator mJobLocator; private JobLauncher mJobLauncher;

} ランチャーが他のすべてのジョブを無視している理由を理解できませんでした。助けてください。よろしく

0 投票する
2 に答える
621 参照

c# - CRON 文字列を使用しないスケジュール設定文字列

現在、プロジェクトで Quartz ジョブを設定するために cron 文字列を使用しています。しかし、開発者ではない管理者が設定するのはやり過ぎであるか、少し混乱しているようです。したがって、次のような単純な文字列を使用しようとします。

この文字列から cron 文字列を取得できる既存のフレームワーク (または Quartz) はありますか? (これを解析して単純なトリガーを取得できることはわかっていますが、DRY はしたくありません)