Redis와 함께 Resque를 ActiveJob을 통해 큐잉 백엔드로 사용하고 있습니다. 작업이 다시 실행되지 않도록 모든 대기열을 지우려면 어떻게합니까?
문서에서 내가 할 수 있음을 알았습니다.
Resque::Job.destroy(queue_name, "Job_CLass_Name")
따라서 제 경우에는 기본 대기열을 사용하고 있으며 작업 클래스 이름은입니다 NotificationJob
. 이것은 Heroku의 콘솔에서 수행하는 작업입니다.
Resque::Job.destroy("default", "NotificationJob")
하지만 작동하지 않습니다
ActiveJob은 작업 클래스 주위에 래퍼 클래스를 사용합니다. 따라서 Resque의 경우 래퍼 클래스 이름은 ActiveJob::QueueAdapters::ResqueAdapter::JobWrapper
.
대기열 이름은를 통해 사용 가능한 대기열을 확인하는 것이 좋습니다 Resque.queues
. 경우에 따라 환경 이름이 기본 대기열 이름에 추가됩니다. 따라서 귀하의 경우에는 다음을 시도해 볼 수 있습니다.
Resque.destroy("#{environment_name}_default", "ActiveJob::QueueAdapters::ResqueAdapter::JobWrapper")
도움이 되었기를 바랍니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다