アプリケーション内のイベントを追跡するためにAhoyを実装しましたが、処理をバックグラウンド ジョブに移動したいと考えています。
呼び出しを行うとセットアップは正常に機能しますがperform_now
(ジョブが処理されます)、変更しperform_later
ても機能しません。ログから、ジョブはエンキューされていないようです。
config/initializers/ahoy.rb
class Ahoy::Store < Ahoy::BaseStore
def track_visit(data)
AhoyTrackVisitJob.perform_later(@options, data)
end
def track_event(data)
AhoyTrackEventJob.perform_later(@options, data)
end
end
app/jobs/ahoy_track_event_job.rb
class AhoyTrackEventJob < ApplicationJob
queue_as :default
def perform(options, data)
Ahoy::DatabaseStore.new(options).track_event(data)
end
end
Sidekiq と SuckerPunch の両方で試しました。
development.rb
config.active_job.queue_adapter = :sidekiq