1.安裝:
gem install sidekiq
或者在gemfile檔案中新增
2.掛載mount 可以讓你監控專案執行狀態gem 'sidekiq'
gem 'slim', ">= 1.3.0"
gem 'sinatra', '>= 1.3.0', :require => nil
3 sidekiq配置 config/sidekiq.ymlrequire
'sidekiq/web'
mount sidekiq::web, at: '/sidekiq'
sidekiq::web.use rack::auth
::basic
do|username, password|
username ==
'***'
&& password ==
'***x'
end
4.在config/initializers下:verbose: false
:concurrency: 5 # 併發數
:pidfile: ./tmp/pids/sidekiq.pid
:logfile: ./log/sidekiq.log # 輸出的日誌位址
:timeout: 30
:queues:
- default # 寫在佇列引數中的, 表示讓 sidekiq 處理這個 queue
- [hardworker, 2] # 使用陣列的形式寫, 第乙個引數為開啟的 queue 的名稱, 第二個為優先順序
- [emailworker, 3]
- [passwordworker, 4]
development:
:concurrency: 5
staging:
:concurrency: 10
production:
:concurrency: 5
5.啟動專案:redis_server = '127.0.0.1'
# redis伺服器
redis_port = 6379
# redis埠
redis_db_num = 11
# redis 資料庫序號
redis_namespace = 'high_sidekiq'
#命名空間,自定義的
sidekiq.configure_server do |config|
config.redis = :#/#", namespace: redis_namespace }
endsidekiq.configure_client do |config|
config.redis = :#/#", namespace: redis_namespace }
end
rails s
6.啟動sidekiq
bundle exec sidekiq -c config/sidekiq.yml 除錯啟動方式
7.在瀏覽器中輸入,然後輸入使用者名稱和密碼
sidekiq強大的非同步任務處理
本篇介紹sidekiq基於redis佇列的後端的非同步任務處理,當然還有定時任務,延時處理等功能。1.定義非同步處理worker類 class hardworker include sidekiq worker sidekiq options queue phoenix job timeout 60...
Sidekiq任務堵塞問題
今天發現伺服器上的sidekiq 執行緒全忙。佇列裡任務積累了好多。sidekiq裡的任務基本都是爬蟲指令碼,都需要請求外部 但是有些 的響應時間或者讀取時間太久,一直一直卡在那裡。使得後面的任務不能執行。所以我們就應該控制請求外部鏈結的讀取時間,避免執行緒卡住。第一種用rest client請求....
非同步處理任務框架
非同步處理任務框架 非同步獲取頭像 第三個引數就是非同步任務執行完畢後的返回值 author administrator public class loadimageasyntask extends asynctask public inte ce loadimageasyntaskcallback...