복붙노트

[REDIS] RQ - 빈 및 삭제 대기열

REDIS

RQ - 빈 및 삭제 대기열

나는 RQ를 사용하고, 나는 항목의 수천 실패한 큐를 가지고 있고, 다른 테스트 큐는 지금 비어 테스트 및 사용하지 않는위한 한참을 만들었습니다. 나는 실패 대기열에서 모든 작업을 제거하고 완전히 테스트 큐를 삭제하는 방법을 궁금하네요?

기본적인 질문에 대한 사과,하지만 난 RQ의 문서에서이에 대한 정보를 찾을 수없는, 내가 미리 ... 감사 레디 스 및 RQ 모두 완전히 새로운 해요!

해결법

  1. ==============================

    1.RQ가 제공 방법 어떤 큐가 비어 만들 수 :

    RQ가 제공 방법 어떤 큐가 비어 만들 수 :

    >>> from redis import Redis
    >>> from rq import Queue
    >>> qfail = Queue("failed", connection=Redis())
    >>> qfail.count
    8
    >>> qfail.empty()
    8L
    >>> qfail.count
    0
    

    당신이 여전히있는 경우는, 테스트 큐에 대해 동일한 작업을 수행 할 수 있습니다.

    RQ-대시 보드를 설치합니다 :

    $ pip install rq-dashboard
    

    그것을 시작

    $ rq-dashboard
    RQ Dashboard, version 0.3.4
     * Running on http://0.0.0.0:9181/
    

    브라우저에서 열려.

    큐를 선택

    빨간 버튼을 클릭하여 "빈"

    그리고 당신이 완료됩니다.

    당신이 RQ에서 사용하는 명령에 실패 레디 스를, 너무 나이 실행하는 경우, 당신은 여전히 ​​삭제에 성공 할 수 파이썬 코드에 의한 작업 :

    코드는 작업 식별자입니다 큐의 이름을 사용합니다.

    Usilg LPOP 우리는 하나 작업 식별자를 부탁드립니다.

    작업이 저장되어 우리는 키가 작업 ID로 (기본적으로 ": 작업 RQ")를 접두사를 추가.

    각 키에 DEL를 사용하여 우리는 작업에 의해 우리의 데이터베이스 작업을 제거.

    >>> import redis
    >>> r = redis.StrictRedis()
    >>> qname = "rq:queue:failed"
    >>> def purgeq(r, qname):
    ... while True:
    ...     jid = r.lpop(qname)
    ...     if jid is None:
    ...         break
    ...     r.delete("rq:job:" + jid)
    ...     print jid
    ...
    >>> purge(r, qname)
    a0be3624-86c1-4dc4-bb2e-2043d2734b7b
    3796c312-9b02-4a77-be89-249aa7325c25
    ca65f2b8-044c-41b5-b5ac-cefd56699758
    896f70a7-9a35-4f6b-b122-a08513022bc5
    
  2. ==============================

    2.이제 명령 줄에서 RQ의 빈 옵션을 사용할 수 있습니다 :

    이제 명령 줄에서 RQ의 빈 옵션을 사용할 수 있습니다 :

    /path/to/rq empty queue_name
    

    당신은뿐만 아니라 실패 한 모든 큐를 비워 사용할 수 있도록

  3. ==============================

    3.도구 rqinfo 모니터링 실패 큐를 비울 수 있습니다. 그냥 RQ가 설치된 당신이 활성 VIRTUALENV이 있는지 확인하고 실행

    도구 rqinfo 모니터링 실패 큐를 비울 수 있습니다. 그냥 RQ가 설치된 당신이 활성 VIRTUALENV이 있는지 확인하고 실행

    $ rqinfo --empty - 실패 - 큐

    자세한 내용은 --help rqinfo 참조하십시오.

  4. ==============================

    4.'작업 RQ'기본적으로 'RQ'작업은 접두어된다. 당신이 다음 명령을 사용하여 레디 스에서 이러한 작업을 삭제할 수 있습니다,

    '작업 RQ'기본적으로 'RQ'작업은 접두어된다. 당신이 다음 명령을 사용하여 레디 스에서 이러한 작업을 삭제할 수 있습니다,

    redis-cli KEYS rq:job:* | xargs redis-cli DEL
    
  5. ==============================

    5.당신은 레디 스에 로그인하는 모든 큐를 지울 수 있습니다

    당신은 레디 스에 로그인하는 모든 큐를 지울 수 있습니다

    로그인하기

    이 명령을 입력하고 Enter 키를 누르십시오

    그리고 당신은 완료

  6. from https://stackoverflow.com/questions/24915181/rq-empty-delete-queues by cc-by-sa and MIT license