기부금 호소: 모든 지연된 업무를 Sidekiq로 이전

안녕하세요!!!👋
지금 우리는 smokin-fast Redis의 실례를 하나 가지고 있습니다. 우리는 모든 백그라운드 작업을 Delayed Job에서 Sidekiq로 옮기고 있습니다!아래 링크를 클릭하면 더 많은 것을 알 수 있습니다!
여기에는 우리가 왜 Sidekiq로 이사해야 하는지, 우리가 어떻게 해야 하는지, 도와주는 지도 방침, 심지어 당신을 가게 하는 예도 많이 있습니다.나는 이것이 개원 분야에 진출하고 싶은 누구에게나 좋은 기회라고 생각한다.만약 당신에게 무슨 문제가 있으면 저에게 알려주세요!
Happing 인코딩😃



mstruve
에 게시

왜 저희가 Sidekiq로 이사를 가야 돼요?


Delayed Job은 데이터베이스에 의존하여 작업을 처리하기 때문에 대량의 작업을 얻을 때 속도가 매우 느릴 수 있습니다.따라서 작업량이 증가함에 따라 새로운 부하를 따라갈 수 있도록 Sidekiq로 전환하고 있습니다.마찬가지로 Delayed Job에서도 많은 일을 잘 처리하지 못하기 때문에, 신뢰성을 확보하려고 할 때, 이것은 좋지 않다.Sidekiq에서 우리는 일을 실패시킬 것을 걱정할 필요가 없다. Redis의 도움으로 Sidekiq는 많은 일을 신속하게 처리할 수 있다.
Sidekiq에는 좋은 기능과 플러그인도 많이 있습니다. 작업/작업 절차가 더욱 복잡해질 때 사용할 수 있습니다.Sidekiq가 왜 훌륭한 백그라운드 작업 도구인지 알고 싶다면.
왜 Sidekiq를 Active Job에 직접 걸지 않습니까?
네, Sidekiq는 hook into ActiveJob 할 수 있지만 단점도 있습니다.주의해야 할 것은 그것2-20x slower이다.또 다른 큰 단점은 Active Job이 미래에 사용할 수 있는 Sidekiq's commercial features 과 호환되지 않는다는 것이다.Active Job을 사용하여 이메일을 보내는 것은 제가 Sidekiq와 bc를 연결할 계획인 유일한 일입니다. 이 작업들은 매우 간단합니다.만약 우리가 그것을 완전히 제어할 수 있다면, 그것을 완전히 Sidekiq로 이동하고 인터페이스를 가능한 한 간단하게 유지할 수 있다면, 그 어떠한 다른 작업도 유리할 것이다.

작업 이동 정책


우리가 Redis keys를 위해 한 것과 마찬가지로, 우리는 하나하나 일을 이동할 것이다.작업이 DJ(Delayed Job)에서 Sidekiq로 이동할 때 Worker 끝으로 이름을 바꿉니다.
예: BustMultipleCachesJob = > BustMultipleCachesWorker이 신입사원들은 업무와 무관한 단독 폴더에 저장되어 여전히 해야 할 일을 신속하게 평가하는 데 도움을 줄 것이다.

뭐 공부 해요?


옮겨야 할 일이 많은데, 이것이 바로 내가 지역 사회의 도움을 좋아하는 이유이다!일자리를 찾아서 Sidekiq로 옮기고 이 문제의 라벨이 있는 PR을 엽니다.

작업 이동 시


네가 이사할 때, 두 가지 방법이 있다
1. 새로운 노동자 계급을 만들고 같은 PR에서 모든 작업을 삭제한다. 많지 않은 작업에 대해서는 100% 벌금이다.예를 들어, 만약 우리가 매일 스케줄러에서 작업을 실행한다면, 우리는 하나의 PR에서 스크롤을 할 수 있다.
2. 신입 사원을 만들고 PR을 엽니다. PR이 통합되면 두 번째 PR을 열어 낡은 작업을 삭제합니다. 이것은 우리가 빈번한 작업을 수행하기 위해 해야 하는 것입니다.색인이나 캐시를 파괴하는 일을 생각해 보세요.PRS를 단독으로 합병함으로써 우리는 신입사원을 만들 때 현재 진행 중인 업무를 구속하지 않을 것을 확보할 수 있다.
나는 그것을 어느 대열에 넣어야 합니까?
작업 집행의 빈도와 이 작업의 중요성을 봐라.예를 들어 사용자 인터페이스에서 시작된 작업은 사용자가 원하는 데이터를 얻을 수 있도록 우리가 원하는 데이터를 신속하게 업데이트하고 있다.배지를 나누어 주는 계획 작업은 그렇게 중요하지 않다. 우선 순위가 낮은 대열에 들어갈 수 있도록 조금 늦출 수 있다.Sidekiq queues we have are
:queues:
  - ["default", 1]
  - ["low_priority", 10]
  - ["medium_priority", 100]
  - ["high_priority", 1000]
  - ["scheduler", 1000]
  - ["mailers", 1000]
오른쪽의 숫자는 대열의 중요성을 나타낸다.수량이 많을수록 대열이 중요해지고 이 작업을 수행하는 속도도 빨라진다.이 숫자들은 사실상 하나의 비율이다.각 대기열이 가득 차면 100high_priority개, 10medium_priority개 등 1000low_priority개의 작업을 수행합니다.
작업을 이동할 때 언제든지 작업 자체를 확인하고 성능이나 실행 방식을 개선하십시오.예:
  • 신입사원을 위한 테스트를 추가합니다. 낡은 업무에 테스트가 없더라도.모든 작업에 정확한 대기열을 설정할 수 있도록 이 새로운 규범도 추가되었다.다행히도
  • 데이터 손실 시 불필요한 작업을 피하기 위해 조기 반환 문구를 추가
  • 이 일은 조용히 실패했습니까?때때로 우리는 일이 더 이상 소리 없이 실패하는 것을 원하지 않는다
  • 매개 변수는 대상입니까?우리는 어떤 대상의 매개 변수도 전달하고 싶지 않다. 간단한 문자열이 우리의 목표이기 때문에 그것들을 문자열, ID 등으로 바꾸는 데 시간이 좀 걸린다.
  • 예제 PRS


    단일 PR 작업 이동:
    다중 PR 작업 이동: PR 1-

    업무를 처리하다


    뭘 하고 싶은지 알려줘!!!

    글:

  • [x]bust\u multiple\u caches\u job
  • [x] 인간 언어 검측 작업.rb
  • [x]score\u calc\u 작업.rb
  • [x]update\u analytics\u 작업.rb
  • [x] _main_image\u background\u hex\u 작업을 업데이트합니다.rb
  • 감사

  • [x] 영구 저장 작업에 저장합니다.rb
  • 휘장 성취

  • [x] e-메일 알림 작업을 보냅니다.rb
  • 채널

  • [x] 색인 작업.rb
  • 기밀이었어

  • [x]bust\u cache\u 작업.rb
  • 평론

  • [x]bust\u cache\u 작업.rb
  • [x] 계산 작업.rb
  • [x] 첫 번째 반응 작업을 만듭니다.rb
  • [x]\u id\u code\u 작업을 만듭니다.rb
  • [x] e-메일 알림 작업을 보냅니다.rb
  • [x]touch\uuser\u 작업.rb
  • 이벤트

  • [x]bust\u cache\u 작업.rb
  • 따르다

  • [x] 채팅 채널 만들기 작업.rb
  • [x] e-메일 알림 작업을 보냅니다.rb
  • [x]touch\u follower\u 작업.rb
  • 언급하다

  • [x] 모든 작업을 만듭니다.rb
  • [x] e-메일 알림 작업을 보냅니다.rb
  • 통지

  • [x]당신의 일을 언급했습니다.rb
  • [x]new_badge_achievement_job.rb
  • [x]새로운 반응 작업.rb
  • [x]모든 작업을 삭제합니다.rb
  • [x]welcome\unotification_작업.rb
  • [x]milestone_작업.rb
  • [x] 새 주석 작업.rb
  • [x]통지해야 할 행동 작업.rb
  • [x]tag\uadjustment\unotification_작업.rb
  • [x] 적절한 통지 작업.rb
  • [x] 새 _follower_작업.rb
  • [x] 작업별로 모든 작업을 삭제합니다.rb
  • [x] 업데이트 작업.rb
  • 조직 기관

  • [x]bust\u cache\u 작업
  • 페이지

  • [x]bust\u cache\u 작업
  • 팟캐스트 주당 이익

  • [x]bust\u cache\u 작업
  • [x] 작업 만들기
  • [x]update\ureactable\u 작업
  • 팟캐스트

  • [x]bust\u cache\u 작업
  • [x] 작업 가져오기
  • 전문 회원 자격

  • [x]popular_history_job
  • 반응하다

  • [x]bust\u homepage\u cache\u 작업.rb
  • [x]bust\ureactable\ucache\u 작업.rb
  • [x] 작업을 만듭니다.rb
  • [x]update\ureactable\u 작업.rb
  • 검색

  • [x] 인덱스 작업
  • [x] 색인 작업에서 삭제
  • 시냇물

  • [x]twitch_webhook_작업
  • 태그

  • [x]bust\u cache\u 작업
  • 사용자

  • [x]bust\u cache\u 작업.rb
  • [x]작업을 따릅니다.rb
  • [x]self\u delete\u 작업.rb
  • [x]touch_작업.rb
  • [x] 기본 언어 작업을 추정합니다.rb
  • [x] 작업을 다시 저장합니다.rb
  • [x] 메일 통신을 구독합니다.rb
  • 그물 갈고리

  • [x] 제거 작업
  • [x] 스케줄링 이벤트 작업
  • 따로

  • [x]html\uvariant\utrial\ucreate\u작업.rb
  • [x]html\uvariant\usuccess\ucreate\u작업.rb
  • [x] 컨텐트 내보내기 작업.rb
  • [x]slack\ubot\uping\u 작업.rb
  • [x]rss\ureader\ufetch\uuser\u 작업.rb
  • 좋은 웹페이지 즐겨찾기