mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-08-08 23:15:24 +02:00
Use Redis for ActiveJob and ActionCable (#2004)
* Use Redis for ActiveJob and ActionCable * Fix alwaysApply setting * Update queue names and weights * Tweak weights * Update job queues * Update docker setup guide * Remove deprecated upgrade columns from users table * Refactor Redis configuration for Sidekiq and caching in production environment * Add Sidekiq Sentry monitoring * queue naming fix * Clean up schema
This commit is contained in:
parent
a7db914005
commit
19cc63c8f4
75 changed files with 328 additions and 1684 deletions
|
@ -1,7 +1,5 @@
|
|||
class ApplicationJob < ActiveJob::Base
|
||||
# Automatically retry jobs that encountered a deadlock
|
||||
# retry_on ActiveRecord::Deadlocked
|
||||
|
||||
# Most jobs are safe to ignore if the underlying records are no longer available
|
||||
# discard_on ActiveJob::DeserializationError
|
||||
retry_on ActiveRecord::Deadlocked
|
||||
discard_on ActiveJob::DeserializationError
|
||||
queue_as :low_priority # default queue
|
||||
end
|
||||
|
|
|
@ -1,31 +0,0 @@
|
|||
class AutoUpgradeJob < ApplicationJob
|
||||
queue_as :latency_low
|
||||
|
||||
def perform(*args)
|
||||
raise_if_disabled
|
||||
|
||||
return Rails.logger.info "Skipping auto-upgrades because app is set to manual upgrades. Please set UPGRADES_MODE=auto to enable auto-upgrades" if Setting.upgrades_mode == "manual"
|
||||
|
||||
Rails.logger.info "Searching for available auto-upgrades..."
|
||||
|
||||
candidate = Upgrader.available_upgrade_by_type(Setting.upgrades_target)
|
||||
|
||||
if candidate
|
||||
if Rails.cache.read("last_auto_upgrade_commit_sha") == candidate.commit_sha
|
||||
Rails.logger.info "Skipping auto upgrade: #{candidate.type} #{candidate.commit_sha} deploy in progress"
|
||||
return
|
||||
end
|
||||
|
||||
Rails.logger.info "Auto upgrading to #{candidate.type} #{candidate.commit_sha}..."
|
||||
Upgrader.upgrade_to(candidate)
|
||||
Rails.cache.write("last_auto_upgrade_commit_sha", candidate.commit_sha, expires_in: 1.day)
|
||||
else
|
||||
Rails.logger.info "No auto upgrade available at this time"
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
def raise_if_disabled
|
||||
raise "Upgrades module is disabled. Please set UPGRADES_ENABLED=true to enable upgrade features" unless ENV["UPGRADES_ENABLED"] == "true"
|
||||
end
|
||||
end
|
|
@ -1,5 +1,5 @@
|
|||
class DataCacheClearJob < ApplicationJob
|
||||
queue_as :default
|
||||
queue_as :low_priority
|
||||
|
||||
def perform(family)
|
||||
ActiveRecord::Base.transaction do
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
class DestroyJob < ApplicationJob
|
||||
queue_as :latency_low
|
||||
queue_as :low_priority
|
||||
|
||||
def perform(model)
|
||||
model.destroy
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
class EnrichTransactionBatchJob < ApplicationJob
|
||||
queue_as :latency_high
|
||||
queue_as :low_priority
|
||||
|
||||
def perform(account, batch_size = 100, offset = 0)
|
||||
account.enrich_transaction_batch(batch_size, offset)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
class FamilyResetJob < ApplicationJob
|
||||
queue_as :default
|
||||
queue_as :low_priority
|
||||
|
||||
def perform(family)
|
||||
# Delete all family data except users
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
class FetchSecurityInfoJob < ApplicationJob
|
||||
queue_as :latency_low
|
||||
queue_as :low_priority
|
||||
|
||||
def perform(security_id)
|
||||
return unless Security.provider.present?
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
class ImportJob < ApplicationJob
|
||||
queue_as :latency_medium
|
||||
queue_as :high_priority
|
||||
|
||||
def perform(import)
|
||||
import.publish
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
class RevertImportJob < ApplicationJob
|
||||
queue_as :latency_low
|
||||
queue_as :medium_priority
|
||||
|
||||
def perform(import)
|
||||
import.revert
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
class SyncJob < ApplicationJob
|
||||
queue_as :latency_medium
|
||||
queue_as :high_priority
|
||||
|
||||
def perform(sync)
|
||||
sleep 1 # simulate work for faster jobs
|
||||
sync.perform
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
class UserPurgeJob < ApplicationJob
|
||||
queue_as :latency_low
|
||||
queue_as :low_priority
|
||||
|
||||
def perform(user)
|
||||
user.purge
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue