簡體   English   中英

如何在 Rails 應用程序中運行無限循環

[英]How to run an indefinite loop in a Rails application

我正在嘗試對不支持 websockets 的外部 API 進行短輪詢,因此我需要每隔幾秒或每秒多次發出 API 請求。

我還需要控制調用下一次投票運行。 例如,我不想在我的請求未決時再次運行輪詢,或者如果我收到 500 錯誤,我可能想增加超時。

目前,考慮在單獨的節點進程中執行此操作,並且僅在有新數據時通知 Rails 服務器。 但我寧願只做 Rails 代碼庫中的所有事情。

我不認為 ActiveJobs 是為此目的而構建的,但我可能是錯的。 我認為我真正需要的是 rails 應用程序存儲庫中的一個單獨入口點,它加載所有模型但不啟動服務器然后編寫短輪詢循環,但不確定這是最佳實踐還是對 rails 來說微不足道.

那么我應該繼續使用節點方法還是缺少一個簡單的 Rails 解決方案? 任何建議或指導表示贊賞。

也許你可以隨時嘗試。

它幫助您使用 crontab 運行方法或 rake 任務。

# schedule.rb
every 1.minute do
  runner "YourClass.your_method"
end

every 1.minute do
  rake "polling:task"
end

完成schedule.rb文件后,您需要在部署管道whenever --update-crontab以更新 crontab。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2025 STACKOOM.COM