1


以下のコードでは、プロセスが完了したか、エラーが発生したか、タイムアウトになったかを示す電子メールを送信する必要があります...

    def check_for_forecasts
   wait_until_time = Time.now + timeout.minutes
   loop do
       RAILS_DEFAULT_LOGGER.info "Checking if process has finished"
     if find_token != 0
       update_completion_status
       RAILS_DEFAULT_LOGGER.info "Process has finished"
       break
     elsif find_error != 0
       update_timed_out_field
       RAILS_DEFAULT_LOGGER.info "Process has errored"
       break
     elsif DateTime.now > wait_until_time
       update_timed_out_field
       RAILS_DEFAULT_LOGGER.info "Process has timed out"
       break
     else
       RAILS_DEFAULT_LOGGER.info "Waiting for Process to finish"
       sleep(60) # if it hasn't completed then wait 1 min and try again.
     end
    end
  end

通常、Linux の「メール」コマンドは、.rb ファイルではなく .sh ファイルでのみ使用します。以下は、.sh ファイルでメールを送信するための「mail」コマンドの書き方です。

 mail -s "the process has been finished" abc@xyz.com<<EOM
      The process has finished successfully.    
EOM

.rb ファイルで単純なメール コマンドを使用する方法はありますか? または、同じもののためにgemをインストールする必要がありますか?

助けてください。ありがとうございました。

4

2 に答える 2

2

ルビーから同じことを行うための本当に醜いが便利な方法:

to = "abc@xyz.com"
subject = "the process has been finished"
content = "The process has finished successfully."
`mail -s "#{subject}" #{to}<<EOM
  #{content}
EOM`
于 2013-04-04T09:21:38.187 に答える