sidekiq強大的非同步任務處理

2021-09-01 16:26:00 字數 1442 閱讀 1881

本篇介紹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...