0

我正在尝试改进使用 Ruby 的发条宝石的过程。

该系统由用户打开服务(状态:打开)并等待员工接受(状态:已预订)组成。

目前,流程如下:

有一个时钟,每一秒都会创建一个与所有开放服务的安排。

every(1.seconds, 'Uptading Booking Invatations') { update_invitations }

对于每项服务,检查自上次更新该服务状态以来是否已过去 15 秒。

bookings.each do |booking|
      elapsed_time = Time.now - booking.created_at
      step_size = 15
      try = (elapsed_time + step_size) / step_size
      try = try.to_i
      next if booking.update_status_try.value >= try
      booking.update_service
end

如果自上次状态更新以来已过去 15 秒,请更新状态。如果没有,它什么也不做。

我想优化这个过程,使时钟每 15 秒直接运行一次。

问题在于,对于新创建的服务,它有时会等待长达 14 秒才能对其状态进行第一次更新,而此时它应该立即发生。

4

0 回答 0