-2

Rufus::Schedulerを使用してタスクをスケジュールします。コードは次のとおりです。

class Scheduler
  def self.run
    scheduler = Rufus::Scheduler.start_new
    job = scheduler.in '5s', A.new
    scheduler.join
  end
  class A
    def call(job)
      puts "xxxxxx"
    end
  end
end
Scheduler.run

コードを実行した後、出力は「xxxx」になりますが、呼び出しメソッドを実行した後、結合はそれ自体で終了できず、常にハングアップします。

ジョブの終了を待った後に参加を終了する方法はありますか?ありがとう。

4

2 に答える 2

2

スケジューラーは「永久に」実行することを目的としています。「join」を呼び出すと、スケジューラスレッドに参加し、スレッドが終了したときにのみ終了します。

あなたはあなたのコードを再考するべきです、あなたはドライバーのようなハンマーを使おうとしています。

于 2011-01-14T14:59:56.417 に答える
-3

プレーンスレッドを使用すると、要件を満たすことができます。

于 2011-02-18T02:47:42.870 に答える