我正在编写一个 ruby 程序,它会要求用户输入一条消息,然后输入年、月、日和时间,然后在那个时间到来时通过电子邮件发送消息。我将该数据存储到数据库表中。程序应该循环直到那一天到来,然后执行发送。
在不使用数据库的情况下,我编写了以下内容:
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
但它似乎只适用于月、日、年的事情,而不是时间。我正在寻找两个问题的答案:如何在数据库中执行循环,按时间顺序查找要发送的消息,以及上面的示例代码,我如何使用一天中的小时和分钟以及一天的月份和发送消息的年份。
PS:我正在设计这个应用程序,用户/应用程序发送一个 API 请求,然后我提到的过程将被执行。