2014-02-06 3 views
0

Ruby on Rails 4.0 및 PostgreSQL 응용 프로그램이 Ubuntu VPS에 호스팅되어 있습니다. 이 응용 프로그램에서는 데이터베이스의 데이터를 기반으로 전자 메일을 보내려고합니다. 예를 들어 백그라운드 작업은 시간당 테이블 컨텐트를 확인하고 컨텐트에 따라 사용자에게 전자 메일을 보내거나 보내지 않습니다. Resque가이 작업을하기로 결심했습니다. 어떻게 할 수 있습니까? Rails 앱 또는 독립적 인 서비스에서해야합니까? 이 작업을 예약하려면 어떻게해야합니까?Resque를 사용한 백그라운드 작업 및 스케줄

답변

1

난 당신이

1. Cron하려고 조언 더 많은 옵션의 몇 가지가 있습니다. here보다 약

참고 읽기 : 당신이 이해 크론 설정 문제에 직면하면 당신을 위해 동일한 작업을 수행 할 수 주옥가 그 whenever

2. Resque-Schedluer 전화 : 확실히 당신은 정확하게 제공 resque - 플러그인 중 하나를 놓친 원하는 기능과 동일한 기능을 resque-scheduler이라고합니다. 그것도 작동하도록 cron 설정을 제공합니다 자세한 정보는 위의 링크를 확인하십시오

희망이 도움

0

시간당 (시간당) 우분투 서버에서 프로세스를 원하므로 Resque를 사용하지 않습니다. 예를 들어 시간당 테이블 내용을 확인하고 이메일로 사용자에게 경보를 보냅니다. 나는 데몬 (Daemon)과 rufus-scheduler에 의해 일정을 잡는다. 약간의 간격에 따라 작업을 실행하기 위해 어떤 유닉스 개발자에게 가장 선호되는 방법 중 하나

Process.daemon(true) 
task_test = TaskTest.new 
pid = Process.fork do 
    task_test.task 
end 

class TaskTest 
    def task 
    scheduler = Rufus::Scheduler.new 
    scheduler.every '1h' do 
     msg = "Message" 
     mailer = MailerProcess.new 
     mailer.send_mail('email-address', 'password', 'to-email', 'Subject', msg) 
     puts Time.now 
    end 
    scheduler.join 
    end 
end