2015-07-28 17 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