Rails 3/delayed_job - Wanted: Basic example of delayed mail

前端 未结 3 2097
谎友^
谎友^ 2020-12-30 16:08

I\'ve been trying to figure out how to send delayed mail using delayed_job with rails 3. I\'ve tried pretty much every combination of feasible possibilities I can think of -

相关标签:
3条回答
  • 2020-12-30 16:42

    I found in Rails 3 with mongoid that removing the handle_asynchronously line gets it to work. I was having all kinds of problems, and it appeared that delayed_job wasn't recognizing any objects within my Emailer class. Removing handle_asynchronously fixed it.

    0 讨论(0)
  • 2020-12-30 16:47

    I agree with andrea - I was having this exact problem, and after switching my local development database from sqlite to mysql, I can run code like

    Emailer.delay({:run_at => 5.minutes.from_now}).welcome(@user)
    

    and it sends the email 5 minutes later. Note that you might need a bigger delay than five minutes (in case of time zone weirdness) to be sure it is working.

    0 讨论(0)
  • 2020-12-30 16:51

    Both using the .delay method and setting handle_asynchronously :test_mail is redundant. Try removing the .delay method from your code. use simply

    Testmailer.test_mail   # without .deliver due to a delayed_job issue
    

    However, I ran some test on your configuration and when using sqlite, run_at is simply ignored (do not know why), but when using mysql2 everything works fine.

    0 讨论(0)
提交回复
热议问题