2016-07-06 8 views
0

私は、20000固定遅延のメールを受信するためのimapチャネル・アダプターを構成しました。 これは期待通りに機能しています。しかし、問題は、それが継続的に実行されているということです。だから私はいくつかの質問があります:Start&Stop - メインargsからのSpring imapインバウンド・チャネル・アダプター

  1. main()を使用してこのチャネルアダプタを起動および停止するにはどうすればよいですか?
  2. このジョブをバッチサーバー(UNIX)で構成すると、メインプログラム自体を使用してこのジョブを停止するにはどうすればいいですか(このチャネルアダプタは連続して実行されています)。
  3. ポーラを「成功」または「失敗」として開始するmainメソッドに何かを返すと、メインからsystem.exit(0)またはsystem.exit(1)を返すことができます。
  4. チャネルアダプタを実行してmain()を完全に制御する方法はありますか?

ご協力いただきありがとうございます。

<int-mail:imap-idle-channel-adapter id="customAdapter" 
     store-uri="imaps://[userid]:[pasword]@imap.gmail.com:993/inbox" 
     channel="receiveChannel" 
     auto-startup="true" 
     should-delete-messages="false" 
     should-mark-messages-as-read="false" 
     java-mail-properties="javaMailProperties"auto-startup="false"> 
    <int:poller max-messages-per-poll="10" fixed-delay="20000"/> 

答えて

0
  1. 開始および停止Control Busコンポーネントを介して制御することができます。

  2. 何らかの状態でダウンストリームフローからアダプタを停止し、同じコントロールバスチャネルにメッセージを送信することもできます。

  3. あなたは一度だけ、それを実行する必要がある場合は、あなたの代わりにfixed-delaytriggerオプションを検討し、それが好きで実装することができます:シンプルCountDonwLatchといくつかのAtomicBooleanを経由することができますメインに

    private final AtomicBoolean invoked = new AtomicBoolean(); 
    
    public Date nextExecutionTime(TriggerContext triggerContext) { 
        return this.invoked.getAndSet(true) ? null : new Date(); 
    } 
    
  4. 戻り何か(またはReference)。

申し訳ありませんが、1つのトピックで非常に多くの質問...それは、SOには適切ではありません。

関連する問題