本篇介紹sidekiq基於redis佇列的後端的非同步任務處理,當然還有定時任務,延時處理等功能。
1.定義非同步處理worker類
class hardworker
include sidekiq::worker
sidekiq_options :queue => 'phoenix_job' , :timeout => 60, :retry => true, :backtrace => true
def perform(options,count=5)
puts 'do'
endend
2.載入workers目錄
3.加入非同步任務處理佇列
hardworker.perform_async(params)
4.sidekiq.yml配置檔案
config/sidekiq.yml
:verbose: false
:pidfile: ./tmp/pids/sidekiq.pid
:logfile: ./log/sidekiq.log
:queues:
- [phoenix_job,7]
- [default, 2]
staging:
:concurrency: 5
development:
:concurrency: 5
production:
:concurrency: 50
5.配置sidekiq鏈結redis
config/initialiizers/sidekiq.rb
env["redistogo_url"] = "redis:"
6.unicorn執行after_fork配置
unicorn.rb
after_fork do |server, worker|
env["redistogo_url"] = "redis:"
end
7.執行,停止命令
stop.sh
bundle exec sidekiqctl quiet tmp/pids/sidekiq.pid
bundle exec sidekiqctl stop tmp/pids/sidekiq.pid
start.sh
bundle exec sidekiq -c config/sidekiq.yml -d -e production
感覺比resque好用多了,在斷網自動重連,日誌檔案,pid檔案,部署,效能等方面都要好。
sidekiq 非同步處理任務
1.安裝 gem install sidekiq或者在gemfile檔案中新增 gem sidekiq gem slim 1.3.0 gem sinatra 1.3.0 require nil2.掛載mount 可以讓你監控專案執行狀態 require sidekiq web mount sidek...
Swoole Task 簡單高效的非同步任務處理框架
歡迎 star 提 issues 127.0.0.1 9510 ctrl action?paramas action對應 ctrl.php檔案中的 action action 的最後必須返回 this ret,即最後一句 return this ret 127.0.0.1 9510?op ctrl....
Spring中的 Async註解 非同步任務處理
在開發中,我們往往有一些特殊的需求,例如log 郵件 使用者op的記錄 來訪者資訊的記錄等等。如果將這些操作放在他自己的執行緒中執行,會不會對程式造成阻塞呢?當高併發的情況下,任務的實時性還存在麼?spring中為我們提供了 async註解,非同步的去處理。那如何去理解呢?如果乙個方法上加了 asy...