Active Job+Sidekiq 설치 노트

2978 단어 Railssidekiqtech

개시하다


최근에 Active Job과 비동기 백엔드(Sidekiq)를 사용할 기회가 생겼기 때문에 그때 얻은 지식을 여기에 남겨 두면 좋겠다.

비동기식 프로세싱을 사용하는 경우


비동기 처리는 합계 데이터에서 CSV 파일과 Excel 파일 등을 만드는 데 시간이 걸리는 처리에 사용됩니다.처리 시간이 비교적 길기 때문에 요청에서 응답에 대한 회답 시간이 길어질 때 먼저 응답에 회답하고 비동기적으로 실행하는 것은 비교적 긴 시간을 필요로 하여 사용자에게 더욱 빨리 회답할 수 있다.

매개변수에 Active Record 모델 넘기기


매개변수에 Active Record 모델을 넘기고 매개변수에 id를 넘기지 마십시오.Active Job은 Global ID를 사용하여 Active Record 모델을 자동으로 직렬화/분류화하기 때문에 수동으로 모델을 분류할 필요가 없습니다.
class SomeJob < ApplicationJob
  def perform(model)
    do_something_with(model)
  end
end

임무 내의 상업 논리


상업 논리는 업무 중에 두지 말고 밖으로 제기해야 한다.

Sidekiq 시작 방법


작업을 수행하려면 Sidekiq를 시작해야 합니다.
$ bundle exec sidekiq

큐 시작

-q 옵션을 사용하여 대기열을 지정하여 Sidekiq를 시작합니다.
$ bundle exec sidekiq -q キュー名

Sidekiq 설정 파일


Sidekiq의 설정 파일은 config/sidekiq.yml입니다.이 파일에서 대기열 등을 설정합니다.
The Sidekiq Configuration File | sidekiq

대시보드


Sidekiq에는 대시보드를 표시할 수 있는 웹 응용 프로그램이 포함되어 있습니다.
루트에 다음 코드를 추가하면 대시보드를 볼 수 있습니다.
mount Sidekiq::Web => "/sidekiq"
참조: Monitoring | sidekiq

테스트


perform_later


작업 테스트에서 perform_later보다 우선적으로 사용perform_now.perform_later의 경우 Redis와 필요 없는 왕복이 발생합니다.

참고 자료

  • sidekiq
  • Active Job Style Guide
  • Rails: Active Job 스타일 가이드(번역)
  • 좋은 웹페이지 즐겨찾기