I know, that my question is easy for you, but not for me, because I''m beginner with RoR. So... My application sends a lot of emails - not only for confirm registration, change password, but others. I take time if I do this by request. My application also creates many files - it takes a time too... Is there a good way for sending email in background? Is there a good way for scheduling jobs? Thanks for help? -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Two best I have personally found are backgroundrb and spawn: http://spawn.rubyforge.org/svn/spawn/ http://backgroundrb.rubyforge.org/ With spawn, scheduling a background (deferred) task is about as simple as can be: spawn do # do whatever you want in here (rails environment is loaded) end If you want recurring job or more finetuned control, you can use backgroundrb which is as simple as 1) generate a worker 2) code the worker to do a task 3) Invoke the worker task with the syntax (roughly): MiddleMan(:worker_name).task_name(args) -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Thanks. I found this: http://railspikes.com/2008/6/3/asynchronous-railsconf-2008, It''s interesting, but not everything is clear for me... Maybe someone know more about this solutions? -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Nathan - spawn works perfect ;-) Thanks a lot! Do you know something about cornedit? -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Anka, Emails are really sent in the background since they will be queued by sendmail or similar. If you plan on sending a ton of emails in one request, I would suggest setting something up with crontab to execute at timed intervals. You can create a model and put your logic in there and then add a crontab entry RAILS_ROOT/lib/my_script_model.rb ---- class MyScriptModel < ActiveRecord::Base def self.some_method Generate all the emails here end end Crontab ---- RAILS_ENV=production 0 * * * * some_user RAILS_ROOT/script/runner MyScriptModel.some_method Something along these lines should get you started. There are certainly other solutions, but I think this would be fairly easy to get going. -Fredrik Anka Gr wrote:> I know, that my question is easy for you, but not for me, because I''m > beginner with RoR. > So... > My application sends a lot of emails - not only for confirm > registration, change password, but others. I take time if I do this by > request. > My application also creates many files - it takes a time too... > Is there a good way for sending email in background? > Is there a good way for scheduling jobs? > > Thanks for help? >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Fredrik, I said, that emails are sent in the background so why request is longer than when I use spawn? It can be other reason? and question about crontab: Generally the idea is clear, but tell me, how my some_method invoked in crontab knows which email should be send? Should I use e.g. table jobs, where I put information which email and to whom it should me send? And some_method should checking this jobs? It''s hard to explain and asking in English ;-) -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Thursday 05 June 2008 09:06:22 Anka Gr wrote:> Generally the idea is clear, but tell me, how my some_method invoked > in crontab knows which email should be send? > Should I use e.g. table jobs, where I put information which email and > to whom it should me send? And some_method should checking this jobs?That''s usually what I do when cron is sufficient, yes. I like the "queued_" prefix for table names for this kind of thing, e.g. "queued_emails". Ciao, Sheldon. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) iD8DBQFIR9hvpGJX8XSgas0RAm3vAJ99xDdoFplsGdzZf44LRhXXRO0v0QCgok8y niUZR8OwRDVM6XrhBcIm0sw=O1aW -----END PGP SIGNATURE----- --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---