2017-09-28 14 views
0

등록되지 않은 사용자가 이메일을 받으면 파일을 다운로드 할 수있는 가입 기반 사이트가 있습니다. 다음 워크 플로가 필요합니다.나중에 한 번 실행되도록 Rails에서 작업을 어떻게 만듭니 까?

  1. 사용자 레일은 사용자가 7 일 가입하지 않은 경우 미래 ​​

  2. 사용자 다운로드 7 일 동안 작업이 파일

  3. 를 이메일로 생성

  4. 이메일 주소를 제공 , 사용자에게 이메일 보내기

I n # 2와 # 4를 추가하십시오. 지금 ActiveJob과 Sidekiq을 사용하여 다운로드 이메일을 보낼 작업을 만듭니다. 앞으로 실행할 ActiveJob을 만들 수있는 방법이 있습니까? 그리고 앞으로의 일은 DB 환경을 점검하기 위해 내 레일 환경에 액세스 할 수 있습니까?

답변

1

확실히 ActiveJob을 1 주일 내에 수행하도록 대기열에 넣을 수 있습니다. 작업 구현시 사용자가 등록하지 않은 경우 조건부로 전자 메일을 보내십시오. 레일을 참조하십시오 ActiveJob에 안내 : http://guides.rubyonrails.org/active_job_basics.html#enqueue-the-job

예 :

# Enqueue a job to be performed 1 week from now. 
UserConfirmationJob.set(wait: 1.week).perform_later(user) 
+0

감사합니다. 대기중인 작업을 테스트하기 위해이 보석을 발견했습니다. https://github.com/gocardless/rspec-activejob – jlee

+0

그레이트! 이것이 효과가 있다면 내 대답을 받아 들일 수 있습니까? –

0

당신이 그것을 이런 식으로 작업을 수행 할 수 있습니다

  1. 사용자가 이메일을 제공합니다.
  2. 당신은 그를 다운로드 할 수 있습니다.
  3. 매일 7 일 전에 이메일을 보냈던 사용자가 가입했는지 여부를 확인하기 위해 스크립트를 실행합니다.
  4. 그리고 가입하지 않았다면 이메일을 보내십시오.
+0

매일 모든 사용자를 다운로더 목록과 대조해야합니다. 그런 다음 7 일 전자 메일을 이미 받았는지 확인하고 볼 수 있도록 사용자 테이블에 열을 추가해야합니다. 30 일 후에 다른 사람을 보내려면 더 복잡해집니다. – jlee