2016-04-09 5 views
-1

私は自動メール機能を追加したいレールでプロジェクトを作っています。私は、バンドルのexec send_digest_emailを実行したときにいつでも宝石を使ってレール上でルビーの自動メールを送信するには

desc 'send digest email' 
task send_digest_email: :environment do 
    # ... set options if any 
    InterviewScheduleMailer.sample_email(@interview_schedule).deliver! 
end 

email_tasks.rakeスケジュールファイル

set :environment, :development 
# Example: 
# 
# set :output, "/path/to/my/cron_log.log" 
# 
every :friday, :at => '3:52 am' do 
    rake 'send_digest_email' 
end 

every :friday, :at => '4:01 pm' do 
    runner "InterviewSchedule.sample_email" 
end 

私の電子メールにのみ行きます。私は電子メールがbirthday.Soメールがあなたは* nixのタイプのOS上にあると仮定すると、午前12時

+0

ここで、sample_emailはActionMailerで指定したアクションの名前です。 –

+0

プロダクションで試しましたか?私はいつも開発中に仕事をすることはできませんまた、なぜあなたはschedule.rbで開発環境に環境を設定していますか? –

+0

病気を開発して状態を更新しようとする... Thanx .... –

答えて

0

時に自動的に行かなければならない持っているdate.For例に基づいて、すべての従業員に配信されるようにしたい

あなたが更新しています仕事が変わるたびにcronタブが表示されますか?

あなたはおそらく、あなたはいつでもとあなたのcrontabを更新するために、次の操作を行うことができ

30 23 * * * /bin/bash -l -c 'cd /Users/xyz/myproject/Nov-02/myproject && myproject_bundle exec rake RAILS_ENV=development send_email' 

以下に似た、あなたのcrontabの内容が表示されますcrontabの

crontab -l 

の内容を表示するには、次のコマンドを実行することができますスケジュール

whenever -w 

詳細はこちらcrontab with railsここで

+0

あなたの返事をありがとう....はい私は--update-crontabをいつでも$を使ってcrontabを更新し、cronジョブのリストも見た。しかし、私はスケジュールファイルで指定された特定の間隔で電子メールを送信することができません。バンドルのexec send_digest_emailをこすってください。そのtym電子メールだけで、それは多くのtymを実行します。 –

+0

あなたはこの機能を達成できるリンクや他の宝石はありますか? –

+0

ログを見ましたか?あなたのcrontab-lはどのように見えますか? – Shani

0

は、私は、スケジューラを使用する方法、それは開発では動作しませんですが、

# add ,roles: [:app] if you are using capistrano for deployment 
every 1.day, :at => '7:06 am' do 
    command "some linux commands" 
end 

# add ,roles: [:app] if you are using capistrano for deployment 
every 1.day, at: '07:00 am' do 
    runner "DailyMailer.log_export_email.deliver_later" 
end 
# Learn more: http://github.com/javan/whenever 

あなたはまた、直接メーラーを起動するために試みるかもしれませんが、私はに設定されactivejobキューアダプタをチェックすることをお勧めプロダクションで働きますあなたのconfig/application.rb

私は、activejobキューにはサイドキックを使用し、電子メールを送信するにはdeliver_laterメソッドを使用します。このようにしてプロセスはバックグラウンドで実行されます。

キューアダプタに基づいて、メーラーに別の方法を使用する必要があります。

希望します。

+0

Bro .... willあなたは私にコードや助産師のリンクを提供してください....それは素晴らしいことでしょう.... –

+0

確かに私は助けようとします。どのプロダクション環境を使用していますか?任意のLinuxサーバーまたはHeroku?また、どのように展開を処理していますか? Capistranoなどのデプロイメントツールを使用しているのですか、または単にレポをプロダクションにプッシュしていますか? –

+0

herokuを使用している場合は、いつでも宝石が必要なく、Heroku Schedulerアドオンを無料で使用でき、簡単に実行できるレーキタスクを実行できます。 –

関連する問題