반응형
Resque 대기열의 작업 수를 프로그래밍 방식으로 가져옵니다.
Resque 대기열에 작업이 너무 많을 때마다 호출되는 모니터링 서비스를 설정하는 데 관심이 있습니다 (대기열이 약 6 개이며 각 대기열에 대해 다른 번호를 지정하겠습니다). 또한 대기열에서 특정 양의 실패한 작업을 초과하면 경고하는 매우 유사한 모니터링 서비스를 설정하고 싶습니다.
내 질문은 내 redis 서버에서 Resque와 관련된 많은 키와 혼란이 있다는 것입니다. 대기열 당 작업 수 또는 실패한 작업 수를 가져 오는 간단한 방법을 반드시 확인하지는 않습니다. 현재 redis에서이 데이터를 가져 오는 간단한 방법이 있습니까?
예, Resque gem을 사용하고 있다면 매우 쉽습니다 .
require 'resque'
Resque.info
해시를 반환합니다
예 / =>
{
:pending => 54338,
:processed => 12772,
:queues => 2,
:workers => 0,
:working => 0,
:failed => 8761,
:servers => [
[0] "redis://192.168.1.10:6379/0"
],
:environment => "development"
}
따라서 실패한 작업 수를 얻으려면 다음을 사용하십시오.
Resque.info[:failed]
내 예에서 => 8761 #
큐를 얻으려면 다음을 사용하십시오.
Resque.queues
이것은 배열을 반환합니다
예 / =>
[
[0] "superQ",
[1] "anotherQ"
]
그런 다음 대기열 당 작업 수를 찾을 수 있습니다.
Resque.size(queue_name)
예 / Resque.size("superQ")
또는 Resque.size(Resque.queues[0])
.....
HTH?
다음은 대기열에있는 총 작업 수와 실패한 작업 수를 모니터링하는 bash 스크립트입니다.
while :
do
let sum=0
let errors=$(redis-cli llen resque:failed)
for s in $(redis-cli keys resque:queue:*)
do
let sum=$sum+$(redis-cli llen $s)
done
echo $sum jobs queued, with $errors errors
sleep 1 # sleep 1 second, probably want to increase this
done
이것은 Resque 1.X 용이며 2.0은 다른 키 이름을 가질 수 있습니다.
반응형
'development' 카테고리의 다른 글
DialogFragment.getDialog가 null을 반환합니다. (0) | 2021.01.05 |
---|---|
Eclipse가 SBT의 종속성을 인식하도록하는 방법 (0) | 2021.01.05 |
jQuery를 사용한 ASP.Net 2012 Unobtrusive Validation (0) | 2021.01.05 |
"{변수}는 점 표기법으로 작성하는 것이 더 좋습니다."를 억제하는 방법 (0) | 2021.01.05 |
웹팩 번들의 크기를 최소화하는 방법은 무엇입니까? (0) | 2021.01.05 |