Active Job+Sidekiq 설치 노트
개시하다
최근에 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와 필요 없는 왕복이 발생합니다.참고 자료
Reference
이 문제에 관하여(Active Job+Sidekiq 설치 노트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/daijiro/articles/active_job_sidekiq_implementation_memo텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)