如何告诉Ruby程序等待一段时间?

sleep()方法示例

有时,您可能需要暂停执行一段时间。 当您在Ruby应用程序中处理地理编码片段或sidekiq作业时,可能会发生这种情况。 为了避免Google API查询限制,您可能需要将程序休眠1秒钟。 在这种情况下,您将需要在Ruby的库中预定义的Ruby sleep()方法。 在许多情况下,您可能需要在任意时间睡眠程序。

Ruby sleep()方法

sleep()方法接受秒数作为参数,并在执行线程作为参数传递的秒数内暂停执行线程。该参数可以数字,浮点数或小数形式传递。如果您正在使用Ruby on Rails的工作,那么你得到的设备来传递与参数.seconds.minutes.hours,它可以暂停直至.days为好。

如果您不使用任何睡眠参数或未指定参数,则您希望执行被挂起多少时间,则程序将永远休眠。

让我们借助简短的程序代码来理解概念。

范例1:

=begin
Code to make execution sleep for 1 second.
=end

puts "Hello world! Greetings from Nhooo.com"
sleep 1
puts "bye"

输出结果

Hello world! Greetings from Nhooo.com
bye
[Finished in 1.3s]

上面的代码是用Sublime Text编写和测试的。在那里您可以检查执行时间。上面的程序执行需要0.3秒钟,而挂起线程的睡眠时间是1秒。

现在,让我们绕过sleep方法中的另一个参数来验证执行时间。

范例2:

=begin
Code to make execution sleep for 5 seconds.
=end  

puts "Hello world! Greetings from Nhooo.com"
sleep 5
puts "bye"

输出:

Hello world! Greetings from Nhooo.com
bye
[Finished in 5.3s]

上面的代码也是用Sublime Text编写和测试的。程序花费的执行时间为“ .3”秒,而休眠时间为5秒,因为我们已经在方法中传递了5秒作为参数。sleep()

现在,让我们借助下面给出的示例来验证sleep方法是否接受float参数,

范例3:

=begin
Code to make execution sleep for 0.75 second.
=end	

puts "Hello world! Greetings from Nhooo.com"
sleep 0.75
puts "bye"

输出结果

Hello world! Greetings from Nhooo.com
bye
[Finished in 1.1s]

借助以上代码,您可以了解sleep变量也接受float参数。