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 -~----------~----~----~----~------~----~------~--~---