From 7dea6a23f7989c1c1693d29f0e0813213173e0f2 Mon Sep 17 00:00:00 2001
From: Eugen Rochko <eugen@zeonfederated.com>
Date: Fri, 18 Nov 2016 23:24:57 +0100
Subject: [PATCH] Move Salmon processing to background as well as PuSH

---
 app/controllers/api/salmon_controller.rb | 2 +-
 app/workers/salmon_worker.rb             | 9 +++++++++
 2 files changed, 10 insertions(+), 1 deletion(-)
 create mode 100644 app/workers/salmon_worker.rb

diff --git a/app/controllers/api/salmon_controller.rb b/app/controllers/api/salmon_controller.rb
index 01862a9000..a7872d5422 100644
--- a/app/controllers/api/salmon_controller.rb
+++ b/app/controllers/api/salmon_controller.rb
@@ -10,7 +10,7 @@ class Api::SalmonController < ApiController
     if body.nil?
       head 200
     else
-      ProcessInteractionService.new.call(body, @account)
+      SalmonWorker.perform_async(@account.id, body.force_encoding('UTF-8'))
       head 201
     end
   end
diff --git a/app/workers/salmon_worker.rb b/app/workers/salmon_worker.rb
new file mode 100644
index 0000000000..12b46e92fd
--- /dev/null
+++ b/app/workers/salmon_worker.rb
@@ -0,0 +1,9 @@
+# frozen_string_literal: true
+
+class SalmonWorker
+  include Sidekiq::Worker
+
+  def perform(account_id, body)
+    ProcessInteractionService.new.call(body, Account.find(account_id))
+  end
+end