Hi ,
How do i schedule a job that can send emails at intervals of time
using backgroundrb and rails
For testing When i hit the controller i''m able send the emails.
but that is not i intend to do .....
I want to use backgroundrb and rails in which i''ll schedule a job
for every 5 minutes/ 1 minute or so..... to send an email
But when i write .yml file as given by the
http://backgroundrb.rubyforge.org/
I''m unable to send emails ....... Infact my
backgroundrb_server.log
shows that scheduler is not even get triggered for every minute or
so
I''ve no clue y the Scheduler is not working for every 1 minute or
so
........ Any help is appreciated !!!!
My Server details:
Ruby 1.8.4
Rails 1.1.6
Backgroundrb - 1.2.1
CENT OS ..
(Installed backgroundrb as rails plugin ie. /vendor/plugins/background...)
------------------------------------ backgroundrb.yml-----------------
:host: localhost
:port: 2000
:rails_env: development
my_scheduler:
:class: :mailman_worker
:job_key: :foo_name
:worker_method: :send_emails_to_people
:trigger_args: 0 */1 * * * * *
------------------------------------------my mailman_worker.rb --------
class MailmanWorker < BackgrounDRb::Worker::RailsBase
def do_work(args)
# This method is called in it''s own new thread when you
# call new worker. args is set to :args
# Replace this with your code
#
logger.info(''I am in do work'')
end
def send_emails_to_people
@d_evals = User.find(:all,:conditions => [''id <=
?'',3]
for lop in @d_users
logger.info(''I am in loop'')
@user = User.find(:first, :conditions => [ ''id =
?'',lop.id])
UserNotify.deliver_people_emails(@user)
end
end
end
MailmanWorker.register
-------------------------------------Controller code-----
class TestffController < ApplicationController
def a_pop
MiddleMan.new_worker(:class => :mailman_worker, :job_key =>
:foo_name)
worker = MiddleMan.worker(:foo_name)
worker.send_emails_to_people
worker.delete
end
end
--------------------------backgroundrb_server.log---------------------------------------------
I am in do work
20070213-20:15:22 (29661) I am in send_emails_to_people
20070213-20:15:22 (29661) I am in loop
20070213-20:16:04 (29668) Starting WorkerLogger
20070213-20:16:05 (29669) In ResultsWorker
20070213-20:16:07 (29669) I am in do work
20070213-20:16:07 (29669) I am in send_emails_to_evaluators
20070213-20:16:07 (29669) I am in loop
20070213-20:16:13 (29669) I am in loop
20070213-20:16:19 (29669) I am in loop
20070214-13:40:47 (1672) Starting WorkerLogger
20070214-13:40:48 (1673) In ResultsWorker
20070214-13:41:32 (1673) I am in do work
20070214-13:41:32 (1673) I am in send_emails_to_people
20070214-13:41:33 (1673) I am in loop
20070214-13:41:39 (1673) I am in loop
20070214-13:41:46 (1673) I am in loop
0070214-13:45:48 (1694) Starting WorkerLogger
20070214-13:45:49 (1695) In ResultsWorker
------ Ashwin Kumar
Mason Hale
2007-Feb-14 16:07 UTC
[Backgroundrb-devel] Scheduling in backgroundrb not working
Ashwin -- The schedules go in a separate file, /config/backgroundrb_schedules.yml, not in the main backgroundrb.yml file. Just copy the schedule block from your backgroundrb.yml file to a new backgroundrb_schedules.yml file, restart backgroundrb, and it should work. Mason On 2/14/07, Ashwin <ashwin.bvn at azri.biz> wrote:> Hi , > How do i schedule a job that can send emails at intervals of time > using backgroundrb and rails > > For testing When i hit the controller i''m able send the emails. > but that is not i intend to do ..... > > I want to use backgroundrb and rails in which i''ll schedule a job > for every 5 minutes/ 1 minute or so..... to send an email > > But when i write .yml file as given by the > http://backgroundrb.rubyforge.org/ > > I''m unable to send emails ....... Infact my backgroundrb_server.log > shows that scheduler is not even get triggered for every minute or > so > > I''ve no clue y the Scheduler is not working for every 1 minute or > so > ........ Any help is appreciated !!!! > > > > My Server details: > > Ruby 1.8.4 > Rails 1.1.6 > Backgroundrb - 1.2.1 > CENT OS .. > (Installed backgroundrb as rails plugin ie. /vendor/plugins/background...) > > > ------------------------------------ backgroundrb.yml----------------- > > :host: localhost > :port: 2000 > :rails_env: development > > > my_scheduler: > :class: :mailman_worker > :job_key: :foo_name > :worker_method: :send_emails_to_people > :trigger_args: 0 */1 * * * * * > > > > ------------------------------------------my mailman_worker.rb -------- > > class MailmanWorker < BackgrounDRb::Worker::RailsBase > > def do_work(args) > # This method is called in it''s own new thread when you > # call new worker. args is set to :args > # Replace this with your code > # > logger.info(''I am in do work'') > end > > def send_emails_to_people > > @d_evals = User.find(:all,:conditions => [''id <= ?'',3] > > for lop in @d_users > logger.info(''I am in loop'') > @user = User.find(:first, :conditions => [ ''id = ?'',lop.id]) > UserNotify.deliver_people_emails(@user) > end > > end > > end > MailmanWorker.register > > > -------------------------------------Controller code----- > > class TestffController < ApplicationController > > > def a_pop > MiddleMan.new_worker(:class => :mailman_worker, :job_key => > :foo_name) > worker = MiddleMan.worker(:foo_name) > worker.send_emails_to_people > worker.delete > end > > end > > > --------------------------backgroundrb_server.log--------------------------------------------- > > I am in do work > 20070213-20:15:22 (29661) I am in send_emails_to_people > 20070213-20:15:22 (29661) I am in loop > 20070213-20:16:04 (29668) Starting WorkerLogger > 20070213-20:16:05 (29669) In ResultsWorker > 20070213-20:16:07 (29669) I am in do work > 20070213-20:16:07 (29669) I am in send_emails_to_evaluators > 20070213-20:16:07 (29669) I am in loop > 20070213-20:16:13 (29669) I am in loop > 20070213-20:16:19 (29669) I am in loop > > 20070214-13:40:47 (1672) Starting WorkerLogger > 20070214-13:40:48 (1673) In ResultsWorker > 20070214-13:41:32 (1673) I am in do work > 20070214-13:41:32 (1673) I am in send_emails_to_people > 20070214-13:41:33 (1673) I am in loop > 20070214-13:41:39 (1673) I am in loop > 20070214-13:41:46 (1673) I am in loop > > > 0070214-13:45:48 (1694) Starting WorkerLogger > 20070214-13:45:49 (1695) In ResultsWorker > > > > ------ Ashwin Kumar > > _______________________________________________ > Backgroundrb-devel mailing list > Backgroundrb-devel at rubyforge.org > http://rubyforge.org/mailman/listinfo/backgroundrb-devel >