當我試圖將應用程序部署到Heroku時,我已經根據heroku's guide設置了procfile
和unicorn.rb
文件。然而,在該文件的頂部有一行當使用heroku和sidekiq時,我應該如何設置ENV [「WEB_CONCURRENCY」]
worker_processes Integer(ENV["WEB_CONCURRENCY"] || 3)
我想,這要我設置WEB_CONCURRENCY=
的.env
文件裏。但是,我不太清楚我應該設置的是什麼。
當我試圖將應用程序部署到Heroku時,我已經根據heroku's guide設置了procfile
和unicorn.rb
文件。然而,在該文件的頂部有一行當使用heroku和sidekiq時,我應該如何設置ENV [「WEB_CONCURRENCY」]
worker_processes Integer(ENV["WEB_CONCURRENCY"] || 3)
我想,這要我設置WEB_CONCURRENCY=
的.env
文件裏。但是,我不太清楚我應該設置的是什麼。
基本上,每個測功機中需要多少工人進程。見here。每個工作進程將允許您在同一臺測試儀上運行併發請求。每個工作進程都消耗一些內存,所以更多的工作進程會讓你的應用運行速度變慢。看起來Heroku推薦2-4個工作進程,所以我會把它設置在那裏。如果你沒有設置任何內容,它將默認爲3
,這可能是一個很好的數字。
底線:您需要將其設置爲一個整數,可能2和4。除非你有理由去改變它之間,它可能是罰款的3
默認離開它,如果你正在使用2+ 2X Standard Dynos或PX Performance Dynos,您可以增加它們並將其設置爲其他值,具體取決於獨角獸分叉的unix進程的平均內存佔用情況。否則,標準的做法表示保留2-4或默認的號碼3
要啓用WEB_CONCURRENCY根據測功機的大小
$ heroku config:set SENSIBLE_DEFAULTS=enabled
$ git commit --allow-empty -m "enable sensible defaults"
$ git push heroku master
$ heroku run bash --size 2X
Running `bash` attached to terminal... up, run.7530
~ $ echo $WEB_CONCURRENCY
4
被設置爲默認值,當啓用值將默認爲:
這將改變你的WEB_CONCURRENCY
根據您的測功機的類型和大小 更多here