Rails如何模拟后台处理

时间:2015-07-28 07:47:05

标签: ruby-on-rails ruby background-process

我正在为即将推出的产品在rails中创建一个模拟器。我们想要模拟传输数据的设备的行为,因此我需要在不同时间模拟多个对象的创建。基本上,我想要一个方法来做到这一点:

def simulate_scenario_a
 create_data_packet_a (instantly)
 create_data_packet_b (5 mins delay)
 create_data_packet_c (10 mins)
end

这些都需要在创建后立即发送到前端api,但我不确定是否有合适的方法来延迟它们。到目前为止,我所有的延迟都阻止了主方法simulate_scenario_a的完成,因此它们同时被解雇。我应该使用延迟工作宝石?需要建议

1 个答案:

答案 0 :(得分:0)

考虑一下background jobs gem。我更喜欢sidekiq gem。

使用sidekiq's API,您可以

def simulate_scenario_a
  DataPacket.create!(params)
  DataPacket.delay_for(5.minutes).create!(params)
  DataPacket.delay_for(10.minutes).create!(params)
end