diff --git a/.env.example b/.env.example index 7f40616b5..ee1bdcda0 100644 --- a/.env.example +++ b/.env.example @@ -213,3 +213,8 @@ STRIPE_WEBHOOK_SECRET= # Set to true if you want to upload files to cloud storage using the signed url # Make sure to follow https://edgeguides.rubyonrails.org/active_storage_overview.html#cross-origin-resource-sharing-cors-configuration on the cloud storage after setting this to true. DIRECT_UPLOADS_ENABLED= + +## Advanced configurations +## Change these values to fine tune performance +# control the concurrency setting of sidekiq +# SIDEKIQ_CONCURRENCY=10 diff --git a/Procfile.dev b/Procfile.dev index f7c4e6a67..94371cbae 100644 --- a/Procfile.dev +++ b/Procfile.dev @@ -1,3 +1,4 @@ backend: bin/rails s -p 3000 frontend: bin/webpack-dev-server -worker: bundle exec sidekiq -C config/sidekiq.yml +# https://github.com/mperham/sidekiq/issues/3090#issuecomment-389748695 +worker: dotenv bundle exec sidekiq -C config/sidekiq.yml diff --git a/Procfile.test b/Procfile.test index 760852e80..32792c245 100644 --- a/Procfile.test +++ b/Procfile.test @@ -1,3 +1,3 @@ backend: RAILS_ENV=test bin/rails s -p 5050 frontend: bin/webpack-dev-server -worker: RAILS_ENV=test bundle exec sidekiq -C config/sidekiq.yml +worker: dotenv RAILS_ENV=test bundle exec sidekiq -C config/sidekiq.yml diff --git a/config/database.yml b/config/database.yml index b2e012f4d..d7ee67e56 100644 --- a/config/database.yml +++ b/config/database.yml @@ -1,9 +1,10 @@ default: &default adapter: postgresql encoding: unicode - pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> host: <%= ENV.fetch('POSTGRES_HOST', 'localhost') %> port: <%= ENV.fetch('POSTGRES_PORT', '5432') %> + # ref: https://github.com/mperham/sidekiq/issues/2985#issuecomment-531097962 + pool: <%= Sidekiq.server? ? Sidekiq.options[:concurrency] : ENV.fetch('RAILS_MAX_THREADS', 5) %> development: <<: *default diff --git a/config/sidekiq.yml b/config/sidekiq.yml index e83ddf8f0..7ebdc064b 100644 --- a/config/sidekiq.yml +++ b/config/sidekiq.yml @@ -4,7 +4,7 @@ # pick it up automatically. --- :verbose: false -:concurrency: 5 +:concurrency: <%= ENV.fetch("SIDEKIQ_CONCURRENCY", 5) %> :timeout: 25 :max_retries: 3 @@ -30,6 +30,6 @@ # you can override concurrency based on environment production: - :concurrency: 10 + :concurrency: <%= ENV.fetch("SIDEKIQ_CONCURRENCY", 10) %> staging: - :concurrency: 5 + :concurrency: <%= ENV.fetch("SIDEKIQ_CONCURRENCY", 5) %> diff --git a/db/migrate/20200417093432_remove_name_from_channels.rb b/db/migrate/20200417093432_remove_name_from_channels.rb index 8fe234bdf..1b246801d 100644 --- a/db/migrate/20200417093432_remove_name_from_channels.rb +++ b/db/migrate/20200417093432_remove_name_from_channels.rb @@ -3,7 +3,7 @@ class RemoveNameFromChannels < ActiveRecord::Migration[6.0] remove_column :channel_facebook_pages, :name, :string remove_column :channel_twitter_profiles, :name, :string migrate_web_widget_name_to_inbox - remove_column :channel_web_widgets, :website_name, :string # rubocop:disable Rails/BulkChangeTable + remove_column :channel_web_widgets, :website_name, :string add_column :channel_web_widgets, :welcome_title, :string add_column :channel_web_widgets, :welcome_tagline, :string diff --git a/db/migrate/20200418124534_add_sender_to_messages.rb b/db/migrate/20200418124534_add_sender_to_messages.rb index a28160e1a..79a1a2a03 100644 --- a/db/migrate/20200418124534_add_sender_to_messages.rb +++ b/db/migrate/20200418124534_add_sender_to_messages.rb @@ -4,7 +4,7 @@ class AddSenderToMessages < ActiveRecord::Migration[6.0] add_sender_from_message remove_index :messages, name: 'index_messages_on_contact_id', column: 'contact_id' remove_index :messages, name: 'index_messages_on_user_id', column: 'user_id' - remove_column :messages, :user_id, :integer # rubocop:disable Rails/BulkChangeTable + remove_column :messages, :user_id, :integer remove_column :messages, :contact_id, :integer end diff --git a/db/migrate/20200605130625_agent_away_message_to_auto_reply.rb b/db/migrate/20200605130625_agent_away_message_to_auto_reply.rb index 9bf1d49c6..0cb7fa4a8 100644 --- a/db/migrate/20200605130625_agent_away_message_to_auto_reply.rb +++ b/db/migrate/20200605130625_agent_away_message_to_auto_reply.rb @@ -1,6 +1,6 @@ class AgentAwayMessageToAutoReply < ActiveRecord::Migration[6.0] def change - add_column :inboxes, :greeting_enabled, :boolean, default: false # rubocop:disable Rails/BulkChangeTable + add_column :inboxes, :greeting_enabled, :boolean, default: false add_column :inboxes, :greeting_message, :string migrate_agent_away_to_greeting diff --git a/deployment/chatwoot-worker.1.service b/deployment/chatwoot-worker.1.service index 6e6e113f0..b3f8804ce 100644 --- a/deployment/chatwoot-worker.1.service +++ b/deployment/chatwoot-worker.1.service @@ -7,7 +7,7 @@ Type=simple User=chatwoot WorkingDirectory=/home/chatwoot/chatwoot -ExecStart=/bin/bash -lc 'bundle exec sidekiq -C config/sidekiq.yml' +ExecStart=/bin/bash -lc 'dotenv bundle exec sidekiq -C config/sidekiq.yml' Restart=always RestartSec=1