[英]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.