나는 사용자에게 메시지를 입력 한 다음 년, 월, 일 및 시간을 입력 한 다음 그 시간이되면 메시지를 전자 메일로 보낼 루비 프로그램을 작성하고 있습니다. 그 데이터를 데이터베이스 테이블에 저장합니다. 프로그램은 그 날이 올 때까지 반복하고 전송을 수행해야합니다.실행 방법 특정 시간, 일, 연도 (루비)
이def send_Message(m_to, m_from, m_body, month, day, year, hour, min)
x = 0
t = Time.now
if (t.day == day
&& t.month == month
&& t.year == year
&& t.strftime("%I") == hour
&& t.strftime("%M") == min)
x = x +5
message = @client.account.sms.messages.create(:body => m_body,
:to => m_to,
:from => m_from)
puts message.sid
else
sleep_time = Time.new(year,month,day)
total_sleep = sleep_time - t
sleep(total_sleep)
message = @client.account.sms.messages.create(:body => m_body,
:to => m_to,
:from => m_from)
puts message.sid
end
end
하지만 단지 정말로 월, 일, 년의 일이 아니라 시간에 작동하는 것 같다 :
데이터베이스를 사용하지 않고, 나는 다음과 같은 작성했습니다. 제가 답변을 찾고있는 두 가지 질문이 있습니다 : 데이터베이스를 통해 루핑을 수행하고, 보낼 시간순으로 메시지를 찾고, 위의 예제 코드로 어떻게 하루의 시간과 분을 그 달과 함께 사용할 수 있습니까? 메시지를 보낼 년.P.S : 사용자/앱이 API 요청을 보내고 내가 언급 한 프로세스가 수행되는 레일에서이 앱을 설계하고 있습니다.
Ruby 프로그램을 실행하기 전까지는 Ruby 프로그램을 실행하지 않는 것이 더 효율적이지 않습니까? 운영 체제의 스케줄링 도구를보십시오. 'at'또는 'cron'은 단지 당신에게 도움이 될 수 있습니다. – vgoff
문제는 제가 언급 했어야합니다. 사용자가 API 요청을 보낼 수있는 레일로 이동해야하며 서버가 내가 말한 데이터를 기록하고 내가 말한 내용을 실행합니다. – user1938700
질문 수정 레일스를 포함하도록 다시 태그하면 레일 중심의 대답을 얻을 수 있습니다. – vgoff