2015-07-28 18 views
0

我正在为即将推出的产品在rails中创建模拟器。我们想要模拟传输数据的设备将如何运作,因此我需要模拟在不同时间创建多个对象。基本上,我想,这是否一种方法: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的完成,因此它们都被同时触发。我应该使用延迟工作的宝石?需要咨询

回答

0

考虑一个background jobs宝石。我更喜欢sidekiq宝石。

使用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