perseverance
그는 물었다 8년 전
95

발생합니까 콘솔입니다 명령의세 및 선택해제합니다 시디케이크 큐에 있는 대기열은 보는 건 뭐가 있어요?

39 m, i& delayed_jobs 진출하는 방법을 사용하여 볼 수 있는 건 뭐가 있어요 콘솔 및 부드럽게가 지우는 대기열은 대기열은 필요할 때. 비슷한 명령이 발생합니까 시디케이크 엔드입니다? 감사합니다!

emf
그는 2년 전 댓글을 달았습니다
1

앞에서 언급한 것처럼 다른 사용자가 선택한 대답을 다음은 사용되지 않습니다.

답변 9 개

There is an 인체공학적 [apiu 확인 및 관리를 위한 대기열은] (https://github.com/mperham/sidekiq/wiki/API).

기본적으로 필요한 것은 아니다.

require 'sidekiq/api'

S # 39, here& 발췌문:

# get a handle to the default queue
default_queue = Sidekiq::Queue.new 

# get a handle to the mailer queue
mailer_queue = Sidekiq::Queue.new("mailer") 

# How many jobs are in the default queue?
default_queue.size # => 1001

# How many jobs are in the mailer queue?
mailer_queue.size # => 50

#Deletes all Jobs in a Queue, by removing the queue.    
default_queue.clear

일부 요약 통계를 볼 수도 있습니다.

stats = Sidekiq::Stats.new

# Get the number of jobs that have been processed.
stats.processed # => 100

# Get the number of jobs that have failed.    
stats.failed # => 3

# Get the queues with name and number enqueued.
stats.queues # => { "default" => 1001, "email" => 50 }

#Gets the number of jobs enqueued in all queues (does NOT include retries and scheduled jobs).
stats.enqueued # => 1051 

mkirk
Jan Klimo
그는 4년 전 댓글을 달았습니다
7

이 접근법은 지금 작동하는 (8월 2016년). 이 오래된 vmware. 수락됨 답이 ~ 2013년.

39, s, t, 그래서 내가 haven& # 39 사용할 수 있는지 방법을 판매업체에서 시디케이크 it& 그냥 보기 위한 래퍼 (wrapper) 이후 약 수 있지만, 그들은 다시그것들을 정말 대기됨 작업를 레디스 명령의세 that& # 39 에 기본적으로 모든 시디케이크 (및 레스크) 입니다.

# See workers
Sidekiq::Client.registered_workers

# See queues
Sidekiq::Client.registered_queues

# See all jobs for one queue
Sidekiq.redis { |r| r.lrange "queue:app_queue", 0, -1 }

# See all jobs in all queues
Sidekiq::Client.registered_queues.each do |q|
  Sidekiq.redis { |r| r.lrange "queue:#{q}", 0, -1 }
end

# Remove a queue and all of its jobs
Sidekiq.redis do |r| 
  r.srem "queues", "app_queue"
  r.del  "queue:app_queue"
end

특정 죄송합니다. 제거 작업이 좀 더 정확한 값을 복사하는 과정에서 많은 you& # 39, d 가 있다.

# Remove a specific job from a queue
Sidekiq.redis { |r| r.lrem "queue:app_queue", -1, "the payload string stored in Redis" }

이 모든 과정을 통해 더욱 쉽게 할 수 있는 '레디스 cli':

$ redis-cli
> select 0 # (or whichever namespace Sidekiq is using)
> keys * # (just to get an idea of what you're working with)
> smembers queues
> lrange queues:app_queue 0 -1
> lrem queues:app_queue -1 "payload"

Brian Armstrong
그는 7년 전 댓글을 달았습니다
0

좋은 방법은 봤어 가져오기할 / 마이그레이션합니다 스케줄링된 작업을 sidekiq& 레스크 # 39 의 형식? # 39, & # 39 의 이름공간이 sidekiq& 설정을 위해 resque& # 39. # 39, t pick up doesn& 스케줄링된 작업를 뭐로부터요 내가 말할 수 있는 것으로 보인다. 감사합니다!

Peter Wagenet
그는 6년 전 댓글을 달았습니다
27

다음은 일부 솔루션을 제공하는 사용되지 않습니다.

Paul
그는 6년 전 댓글을 달았습니다
0

@BrianArmstrong {R 시데키크.러디스 스터스치역 (,, - 1, 0, &quot schedule&quot {비스코스: 진정한})} 협력했습니다 가져다줄래요 참조 https://stackoverflow.com/questions/16009639/sidekiq-to-cancel-list-to-scheduled-jobs

odigity
그는 6년 전 댓글을 달았습니다
2

위에서 지적한 대로 바그네 이러한 사례는 비일비재하다. 아래 예제는 오른길로 위키 문서 w / 최신값 마커크 지적한 바 있다. https://github.com/mperham/sidekiq/wiki/API

Martin Svoboda
그는 9달 전 댓글을 달았습니다
0

'' 을 (를) '' 와 'Sidekiq::Client.registered_workers Sidekiq::Client.registered_queues 교체되었는지 Sidekiq::Queue.all Sidekiq::Workers.new', '을 (를)' 참조. https://github.com/mperham/sidekiq/blob/52562b715174e447a0f7666136838521fda69214/3.0-Upgrade.md

스케줄링된 죠브 있는지 다음 명령을 사용하여 모든 작업에 삭제할 수 있습니다.

Sidekiq::ScheduledSet.new.clear

모든 작업을 하고 싶은 모든 대기열은 협업공간이 삭제하시겠습니까 다음 명령을 사용할 수 있습니다.

  Sidekiq::Queue.new.clear

Retries 작업를 탈착할 수 있는 다음 명령줄에서는 있다.

Sidekiq::RetrySet.new.clear

자세한 내용은 아래 링크를 체크아웃합니다 자리에 있을 수 있습니다. https://github.com/mperham/sidekiq/wiki/API

Api 에 대한 실시간 정보를 근로자 및 jobs.&lt br/&gt 대기열은 액세스하면 있습니다;; Dell. 여기서요 https://github.com/mperham/sidekiq/wiki/API

$ redis-cli
> select 0 # (or whichever namespace Sidekiq is using)
> keys * # (just to get an idea of what you're working with)
> smembers queues
> lrange queue:queue_name 0 -1 # (queue_name must be your relevant queue)
> lrem queue:queue_name -1 "payload"

timurb
그는 3년 전 댓글을 달았습니다
7

39 '키' 를 운영, * t 판매업체에서 don& 실행하십시오 사용하지 않으면 대해서만 레디스 있는 시디케이크. 특히 정보기술 (it), t # 39 don& 실행하십시오 많은 경우 데이터세트를 (캐시 등).

  • '와' 이 발생할 수 있는 요소 - 레디스는 단일 스레드 키 큰 데이터세트를 몇 분 붙여넣습니다 다운타임이 (몇 gb).

39 의 it& 재시도하십시오 대기열은 시디케이크 선택해제합니다 및 싶다면, 이: 'Sidekiq::RetrySet.new.clear'

이 문제를 해결하려면 (# 39, & # 39 sidekiq/testing& 합니다;) 테스트 모듈에서는 사용합니다를 그리고 방전됩니다 작업자 (마이워커스트레인).

모든 작업을 계기로 선택해제합니다 시디케이크 대기열은:

namespace :sidekiq do
  desc 'Clear sidekiq queue'
  task clear: :environment do
    require 'sidekiq/api'
    Sidekiq::Queue.all.each(&:clear)
  end
end

사용법:

rake sidekiq:clear

s2t2
그는 2년 전 댓글을 달았습니다
0

'감사합니다' Sidekiq::Queue.all 찾고 있었습니다.

39, & # 39 workers& 목을 매 숨진 있었다. 내가 그들을 볼 수 있는 것은 기본 큐입니다 표시되어도 웹 인터페이스입니다. 그러나 만약 내가 Sidekiq::Queue.new.size 사용되는 콘솔 weren& # 39, t) 에서 확인할 수 있습니다.

irb(main):002:0> Sidekiq::Queue.new.size
2014-03-04T14:37:43Z 17256 TID-oujb9c974 INFO: Sidekiq client with redis options {:namespace=>"sidekiq_staging"}
=> 0

내가 사용하는 레디스 cli 것들이었다고요 수 있었습니다.

redis 127.0.0.1:6379> keys *
    1) "sidekiq_staging:worker:ip-xxx-xxx-xxx-xxx:7635c39a29d7b255b564970bea51c026-69853672483440:default"
    2) "sidekiq_staging:worker:ip-xxx-xxx-xxx-xxx:0cf585f5e93e1850eee1ae4613a08e45-70328697677500:default:started"
    3) "sidekiq_staging:worker:ip-xxx-xxx-xxx-xxx:7635c39a29d7b255b564970bea51c026-69853672320140:default:started"
    ...

이 솔루션은 없었다.

irb(main):003:0>  Sidekiq.redis { |r| r.del "workers", 0, -1 }
=> 1

또한 시디케이크 아니했다고 v3 는 명령

Sidekiq::Workers.new.prune

그러나 몇 가지 이유로 이 didn& # 39 가져다줄래요 그날이라뇨 빗나갔다.