簡體   English   中英

Rake任務訪問Web應用程序的全局變量

[英]Rake task's access to web app's global variables

我正在編寫一個簡單的Ruby on Rails應用程序,對ROR知之甚少。 該應用程序定期查詢Twitter和Instagram,獲取某些用戶的訂閱源並將其存儲在某個地方,然后當特定用戶的推文或照片的請求到達時,它可以快速訪問。

我正在考慮編寫一個rake任務,該任務將定期獲取推文和Instagram照片。

如果webapp使用全局變量來獲取源,那么rake任務是否可以訪問同一個全局變量並更新它?

或者是否必須使用數據庫,因此rake和webapp可以更新/訪問相同的數據?

rake任務通常會在它自己的進程中運行,因此它無法與主應用程序共享狀態。 但是,您可以在應用程序中創建一個類來獲取Feed並使用時間戳存儲它。 只要該時間戳到期,它就會創建一個新請求。 但是,雖然易於實現,但是在緩存過期后,只要請求到達,這將導致您的請求減慢一點,因為應用程序需要從Twitter和Instagram獲取數據作為請求的一部分。

如果您構建rake任務的依賴項來加載Rails應用程序,那么您可以訪問Rails應用程序所做的所有相同數據。

desc 'My polling rake task'
task :twitter_pool => :environment do
  m = MyModel.find(123) # access models
  MyModel::CONSTANT
  ... # etc.
end

“=>:環境”是重要的組成部分。

暫無
暫無

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

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