[REDIS] sidekiq 노동자가 perform_async으로 수행 된 경우 확인하는 방법 레일
REDISsidekiq 노동자가 perform_async으로 수행 된 경우 확인하는 방법 레일
나는 sidekiq 노동자 (sidekiq와 처음 작업)에 광범위한 백그라운드 작업을 외삽에 일하고 있어요.
나는 제대로 실행하려면이 옵션을 얻을 수있었습니다.
하지만 확인 방법 sidekiq 노동자의 진행 상황을 확인하기 위해 아니에요 - 작업자가 perform_async 기능을 수행하는지 확인하는 가장 좋은 방법은 무엇입니까?
AutoWorker sidekiq 작업 :
class AutoWorker
include Sidekiq::Worker
def perform(lead_id, cars)
logger.info "WORKER CREATED"
lead = Lead.find(lead_id)
response = ZipCodeCheck.new(cars: cars, lead: lead).execute
end
end
내 컨트롤러에서 호출 :
def update
respond_to do |format|
if @lead.update(lead_params)
cars = params[:car_array]
AutoWorker.perform_async(@lead.id, cars)
format.json { render action: 'show', status: :created, location: @lead }
else
format.html { redirect_to @lead, notice: 'Lead was successfully updated.' }
format.json { render action: 'show', status: :created, location: @lead}
end
else
format.html { render action: 'edit' }
format.json { render json: @lead.errors, status: :unprocessable_entity }
end
end
end
해결법
-
==============================
1.sidekiq에 다음 확장 보석 체크 아웃 : https://github.com/utgarda/sidekiq-status/blob/master/README.md
sidekiq에 다음 확장 보석 체크 아웃 : https://github.com/utgarda/sidekiq-status/blob/master/README.md
(가) 저를 읽을에서이다 :
job_id = MyJob.perform_async(*args) data = Sidekiq::Status::get_all job_id data # => {status: 'complete', update_time: 1360006573, vino: 'veritas'} Sidekiq::Status::get job_id, :vino #=> 'veritas' Sidekiq::Status::at job_id #=> 5 Sidekiq::Status::total job_id #=> 100 Sidekiq::Status::message job_id #=> "Almost done"
from https://stackoverflow.com/questions/32940007/rails-how-to-tell-if-a-sidekiq-worker-is-done-with-perform-async by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] 쓰기를 확장하는 방법으로 일관된 해싱 (0) | 2020.01.20 |
---|---|
[REDIS] 레디 스 설정하고 해결의 관계를 분류 (0) | 2020.01.20 |
[REDIS] 레디 스과의 화합물 검색어 (0) | 2020.01.20 |
[REDIS] 비동기 레디 스는 libevent를 사용하여 풀링 (0) | 2020.01.20 |
[REDIS] 왜 레디 스에 대한 비동기 클라이언트를 사용하는 의미가 무엇입니까? (0) | 2020.01.20 |