programing

루비 프로그램에게 잠시 기다리라고 말합니다.

sourcejob 2023. 6. 8. 19:39
반응형

루비 프로그램에게 잠시 기다리라고 말합니다.

Ruby 프로그램에 다음 코드 행으로 이동하기 전에 임의의 시간을 기다리도록 지시하는 방법은 무엇입니까?

다음과 같이:

sleep(num_secs)

num_secs값은 정수 또는 부동 소수일 수 있습니다.

또한 레일즈 앱 내에서 이를 작성하거나 프로젝트에 ActiveSupport 라이브러리를 포함한 경우 다음과 같은 편리한 구문을 사용하여 더 긴 간격을 구성할 수 있습니다.

sleep(4.minutes)
# or, even longer...
sleep(2.hours); sleep(3.days) # etc., etc.
# or shorter
sleep(0.5) # half a second

수면은 다음과 같이 사용합니다.

sleep 2

그것은 2초 동안 잠을 잘 것입니다.

논쟁을 하는 것을 조심하세요.그냥 도망치면,sleep프로세스가 영구 절전 모드로 전환됩니다. (스레드가 깨울 때까지 절전 모드로 전환할 때 유용합니다.)

찾았습니다until수면에 매우 유용합니다.예:

> time = Time.now
> sleep 2.seconds until Time.now > time + 10.seconds # breaks when true
> # or
> sleep 2 and puts 'still sleeping' until Time.now > time + 10
> # or
> sleep 1.seconds until !req.loading # suggested by ohsully

이것처럼.

sleep(no_of_seconds)

또는 다음과 같은 다른 가능한 인수를 전달할 수 있습니다.

sleep(5.seconds)

sleep(5.minutes)

sleep(5.hours)

sleep(5.days)

레일 방식인 초/분/시간 구현.암묵적인 반품은 필요하지 않지만, 더 깨끗해 보이기 때문에 저는 그것들을 선호합니다.Rails가 .days를 가지고 있는지, 더 멀리 가는지는 모르겠지만, 이것들이 제가 필요로 하는 것들입니다.

class Integer
   def seconds
      return self
   end
   def minutes
      return self * 60
   end
   def hours
      return self * 3600
   end
   def days
      return self * 86400
   end
end

이 후에는 다음 작업을 수행할 수 있습니다.sleep 5.seconds5초 동안 잠을 자는 것.할수있습니다sleep 5.minutes5분 동안 잠을 자는 것.할수있습니다sleep 5.hours5시간 동안 잠을 자는 것.그리고 마지막으로, 당신은 할 수 있습니다.sleep 5.days5일동안 잠을 자는것...self *(해당 기간의 초) 값을 반환하는 모든 메서드를 추가할 수 있습니다.연습으로, 몇 달 동안 그것을 실행해 보세요!

sleep 66초 동안 잘 거예요.더 오랜 기간 동안 사용할 수도 있습니다.sleep(6.minutes)또는sleep(6.hours).

다음은 사용 예입니다.sleep와 함께sidekiq

require 'sidekiq'

class PlainOldRuby
  include Sidekiq::Worker

  def perform(how_hard="super hard", how_long=10)
    sleep how_long
    puts "Workin' #{how_hard}"
  end
end

10초간 자고 인쇄합니다."Working super hard".

언급URL : https://stackoverflow.com/questions/1329967/tell-ruby-program-to-wait-some-amount-of-time

반응형