here''s my problem: I have a table with lots of emails to be sent at specified dates, and I want a process that checks, let''s say every hour or so, that table for mails to be sent, sends them and delete the records... A very simple background process that call''s a method. If there was a way of doing this not in background it''d be ok, I don''t care if it gets stuck every hour for a few seconds.. I know about remoterb, but really.. isn''t there an easier way? I don''t want to spend too much time on this stuff! thanks everyone! Luca --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
http://seattlerb.rubyforge.org/ar_mailer/ On Fri, Sep 5, 2008 at 3:59 PM, Snaggy <l.cioria-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> > here''s my problem: > I have a table with lots of emails to be sent at specified dates, and > I want a process that checks, let''s say every hour or so, that table > for mails to be sent, sends them and delete the records... > > A very simple background process that call''s a method. If there was a > way of doing this not in background it''d be ok, I don''t care if it > gets stuck every hour for a few seconds.. > > I know about remoterb, but really.. isn''t there an easier way? I don''t > want to spend too much time on this stuff! > > > thanks everyone! > Luca > > >-- Maurício Linhares http://alinhavado.wordpress.com/ (pt-br) | http://blog.codevader.com/ (en) João Pessoa, PB, +55 83 8867-7208 --~--~---------~--~----~------------~-------~--~----~ 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@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
That thing is too big! And it''s meant for delivering mails like a queue. I want to deliver them only when it''s time, they might stay there for months, years.. Is there a way that doesn''t involve plugins, or just small ones? like a thread.do stuff.. I don''t know.. bye On Sep 5, 9:01 pm, "Maurício Linhares" <mauricio.linha...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> http://seattlerb.rubyforge.org/ar_mailer/ > > > > On Fri, Sep 5, 2008 at 3:59 PM, Snaggy <l.cio...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > > here''s my problem: > > I have a table with lots of emails to be sent at specified dates, and > > I want a process that checks, let''s say every hour or so, that table > > for mails to be sent, sends them and delete the records... > > > A very simple background process that call''s a method. If there was a > > way of doing this not in background it''d be ok, I don''t care if it > > gets stuck every hour for a few seconds.. > > > I know about remoterb, but really.. isn''t there an easier way? I don''t > > want to spend too much time on this stuff! > > > thanks everyone! > > Luca > > -- > Maurício Linhareshttp://alinhavado.wordpress.com/(pt-br) |http://blog.codevader.com/(en) > João Pessoa, PB, +55 83 8867-7208--~--~---------~--~----~------------~-------~--~----~ 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@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Is there some reason a cron job that POSTs an HTTP request to the Rails app wouldn''t do the trick? Snaggy wrote:> > here''s my problem: > > I have a table with lots of emails to be sent at specified dates, and > > I want a process that checks, let''s say every hour or so, that table > > for mails to be sent, sends them and delete the records...--~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
Look at this.. I know it''s a stupid try but I''d like to know
why it
doesn''t work:
put in some method..
Thread.new do
while true do
Notifier.deliver_message
sleep 30
end
end
Notifier is an action mailer class.
Shouldn''t this send an email every 30 seconds? Can it access the
Notifies class?
confused...
On Sep 5, 9:09 pm, Snaggy
<l.cio...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
wrote:> That thing is too big! And it''s meant for delivering mails like a
> queue. I want to deliver them only when it''s time, they might stay
> there for months, years..
> Is there a way that doesn''t involve plugins, or just small ones?
> like a thread.do stuff.. I don''t know..
>
> bye
>
> On Sep 5, 9:01 pm, "Maurício Linhares"
<mauricio.linha...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> wrote:
>
> >http://seattlerb.rubyforge.org/ar_mailer/
>
> > On Fri, Sep 5, 2008 at 3:59 PM, Snaggy
<l.cio...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>
> > > here''s my problem:
> > > I have a table with lots of emails to be sent at specified dates,
and
> > > I want a process that checks, let''s say every hour or
so, that table
> > > for mails to be sent, sends them and delete the records...
>
> > > A very simple background process that call''s a method.
If there was a
> > > way of doing this not in background it''d be ok, I
don''t care if it
> > > gets stuck every hour for a few seconds..
>
> > > I know about remoterb, but really.. isn''t there an
easier way? I don''t
> > > want to spend too much time on this stuff!
>
> > > thanks everyone!
> > > Luca
>
> > --
> > Maurício Linhareshttp://alinhavado.wordpress.com/(pt-br)
|http://blog.codevader.com/(en)
> > João Pessoa, PB, +55 83 8867-7208
--~--~---------~--~----~------------~-------~--~----~
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@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
where did my reply go ?!? Anyway Bill, your idea sounds great, but how can I do it? thanks! On Sep 5, 9:31 pm, Snaggy <l.cio...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> Look at this.. I know it''s a stupid try but I''d like to know why it > doesn''t work: > put in some method.. > > Thread.new do > while true do > Notifier.deliver_message > sleep 30 > end > end > > Notifier is an action mailer class. > Shouldn''t this send an email every 30 seconds? Can it access the > Notifies class? > > confused... > > On Sep 5, 9:09 pm, Snaggy <l.cio...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > > That thing is too big! And it''s meant for delivering mails like a > > queue. I want to deliver them only when it''s time, they might stay > > there for months, years.. > > Is there a way that doesn''t involve plugins, or just small ones? > > like a thread.do stuff.. I don''t know.. > > > bye > > > On Sep 5, 9:01 pm, "Maurício Linhares" <mauricio.linha...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> > > wrote: > > > >http://seattlerb.rubyforge.org/ar_mailer/ > > > > On Fri, Sep 5, 2008 at 3:59 PM, Snaggy <l.cio...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > > > > here''s my problem: > > > > I have a table with lots of emails to be sent at specified dates, and > > > > I want a process that checks, let''s say every hour or so, that table > > > > for mails to be sent, sends them and delete the records... > > > > > A very simple background process that call''s a method. If there was a > > > > way of doing this not in background it''d be ok, I don''t care if it > > > > gets stuck every hour for a few seconds.. > > > > > I know about remoterb, but really.. isn''t there an easier way? I don''t > > > > want to spend too much time on this stuff! > > > > > thanks everyone! > > > > Luca > > > > -- > > > Maurício Linhareshttp://alinhavado.wordpress.com/(pt-br) |http://blog.codevader.com/(en) > > > João Pessoa, PB, +55 83 8867-7208--~--~---------~--~----~------------~-------~--~----~ 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@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
I have something that does exactly that.
It uses the Daemons gem. I start it by doing
ruby scripts/outgoing_email_thread.rb start/stop/restart
Basically this thread just loops forever. It wakes up and checks for
stuff to do by asking the database
"Notification.find(:all, :conditions => ''b_distribute =
true'').each do
|n|"
So for me I have a table called Notifications that things get inserted
into by my application. If they want batch mode distribution, they
set b_distribute = true. This thing gets them, does some mojo and
then sends out notifications. Don''t get caught up in my crazy code as
much as the idea of a Daemon thread you start that loops and does your
stuff. My app has about 4 of this bad boys running checking incoming
email, sending email, gathering SMS messages, etc.
#!/usr/bin/env ruby
##
require ''rubygems'' # if you use RubyGems
require ''daemons''
Daemons.run_proc("outgoing_email_thread", {:dir_mode => :normal,
:dir
=> ''tmp/pids''} ) do
require "/var/www/yoursite/current/config/environment.rb" # This
has to be a full path to your environment.rb file. scratched my head
here.
loop {
logger.info(''outgoing_email_thread: Checking for outgoing email
messages at '' + Time.now.to_s)
# Find any notifications that need to be distributed
Notification.find(:all, :conditions => ''b_distribute
true'').each do |n|
begin
n.attach_to_subscribers
rescue Exception => exc
logger.error("outgoing_email_thread: sending email.." +
exc.message)
logger.error(exc.backtrace.join("\n"))
end
n.update_attributes(:b_distribute => false)
end
# Now notify any users based on Readings
Reading.find(:all, :conditions => ''is_sent =
false'').each do |r|
begin
r.update_attribute(:is_sent, true)
if r.connector.source.bsd.setting.mail_event &&
r.connector.source.bsd.email_tested
email = NotificationMailer.create_notify(r.connector,
r.notification)
email.set_content_type("text/html" )
NotificationMailer.deliver(email)
end
rescue Exception => exc
logger.error("outgoing_email_thread: sending email.." +
exc.message)
logger.error(exc.backtrace.join("\n"))
end
end
EmailMessage.find(:all, :conditions => [''is_sent =
?'',
false]).each do |email|
email.send_me
end
sleep 13 # My lucky number
}
end
Hope this is helpful.
Mike
On Sep 5, 12:33 pm, Snaggy
<l.cio...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
wrote:> where did my reply go ?!?
>
> Anyway Bill, your idea sounds great, but how can I do it?
> thanks!
>
> On Sep 5, 9:31 pm, Snaggy
<l.cio...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>
> > Look at this.. I know it''s a stupid try but I''d like
to know why it
> > doesn''t work:
> > put in some method..
>
> > Thread.new do
> > while true do
> > Notifier.deliver_message
> > sleep 30
> > end
> > end
>
> > Notifier is an action mailer class.
> > Shouldn''t this send an email every 30 seconds? Can it access
the
> > Notifies class?
>
> > confused...
>
> > On Sep 5, 9:09 pm, Snaggy
<l.cio...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>
> > > That thing is too big! And it''s meant for delivering
mails like a
> > > queue. I want to deliver them only when it''s time, they
might stay
> > > there for months, years..
> > > Is there a way that doesn''t involve plugins, or just
small ones?
> > > like a thread.do stuff.. I don''t know..
>
> > > bye
>
> > > On Sep 5, 9:01 pm, "Maurício Linhares"
<mauricio.linha...@gmail.com>
> > > wrote:
>
> > > >http://seattlerb.rubyforge.org/ar_mailer/
>
> > > > On Fri, Sep 5, 2008 at 3:59 PM, Snaggy
<l.cio...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>
> > > > > here''s my problem:
> > > > > I have a table with lots of emails to be sent at
specified dates, and
> > > > > I want a process that checks, let''s say every
hour or so, that table
> > > > > for mails to be sent, sends them and delete the
records...
>
> > > > > A very simple background process that call''s a
method. If there was a
> > > > > way of doing this not in background it''d be
ok, I don''t care if it
> > > > > gets stuck every hour for a few seconds..
>
> > > > > I know about remoterb, but really.. isn''t
there an easier way? I don''t
> > > > > want to spend too much time on this stuff!
>
> > > > > thanks everyone!
> > > > > Luca
>
> > > > --
> > > > Maurício Linhareshttp://alinhavado.wordpress.com/(pt-br)
|http://blog.codevader.com/(en)
> > > > João Pessoa, PB, +55 83 8867-7208
--~--~---------~--~----~------------~-------~--~----~
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@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
you do this by using the SQL SSIS jobs also !!! On Fri, Sep 5, 2008 at 11:59 AM, Snaggy <l.cioria-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> > here''s my problem: > I have a table with lots of emails to be sent at specified dates, and > I want a process that checks, let''s say every hour or so, that table > for mails to be sent, sends them and delete the records... > > A very simple background process that call''s a method. If there was a > way of doing this not in background it''d be ok, I don''t care if it > gets stuck every hour for a few seconds.. > > I know about remoterb, but really.. isn''t there an easier way? I don''t > want to spend too much time on this stuff! > > > thanks everyone! > Luca > > >--~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
A cron task would also work... On Sep 5, 3:43 pm, "market market" <marketgu...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> you do this by using the SQL SSIS jobs also !!! > > On Fri, Sep 5, 2008 at 11:59 AM, Snaggy <l.cio...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > > here''s my problem: > > I have a table with lots of emails to be sent at specified dates, and > > I want a process that checks, let''s say every hour or so, that table > > for mails to be sent, sends them and delete the records... > > > A very simple background process that call''s a method. If there was a > > way of doing this not in background it''d be ok, I don''t care if it > > gets stuck every hour for a few seconds.. > > > I know about remoterb, but really.. isn''t there an easier way? I don''t > > want to spend too much time on this stuff! > > > thanks everyone! > > Luca--~--~---------~--~----~------------~-------~--~----~ 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@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
>> On Fri, Sep 5, 2008 at 11:59 AM, Snaggy <l.cio...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: >> >>> here''s my problem: >>> I have a table with lots of emails to be sent at specified dates, >>> and >>> I want a process that checks, let''s say every hour or so, that table >>> for mails to be sent, sends them and delete the records... >> >>> A very simple background process that call''s a method. If there >>> was a >>> way of doing this not in background it''d be ok, I don''t care if it >>> gets stuck every hour for a few seconds.. >> >>> I know about remoterb, but really.. isn''t there an easier way? I >>> don''t >>> want to spend too much time on this stuff! >>You want ar_mailer... http://blog.segment7.net/articles/2006/08/15/ar_mailer "Even deliviring email to the local machine may take too long when you have to send hundreds of messages. ar_mailer allows you to store messages into the database for later delivery by a separate process, ar_sendmail." --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---