Calling function from worker with delayed job in rails

I have one function, that have been working in delayed job.

class TestDelay < ActiveRecord::Base
def start_worker
tc = TestController.new

 #Here calling that main function

endend

also i have one other class

class TestController < ApplicationController
before_filter :filter1, :filter2

def follow_function
#Doing the main portion
end

protected
def filter1
end

def filter2
endend

In the class TestController has two filters, that will work on every
action, there setting the instance variables on that filters, and using
that in my follow_function. So the issues are when i am trying to call
the follow_function from the delayed job method start_worker, i need
to
set the instance variables in that filters, this is the exact way to do
this?

so what i tried something like that i put one function in
TestController
class like

def init_variables(names)
#filter1(names)
#filter2(names)end
class TestDelay < ActiveRecord::Base
def start_worker
class_name.init_variables(params)
endend

and i tried to passing arguments in before_filter, but its totally
failed
and getting weird. Is this the correct way to do this?

This is totally the wrong way of doing this.

You are breaking the MVC pattern.

Neither the worker or the model should access the controller functions.

You should put all the logic related to the delay job, inside the worker
or
in separated classes.

I like to have a worker classe inside the app folder /app/workers, and
if a
need more complex objects I put them inside the /lib folder

===================
Alexandre Mondaini Calvão

Nossa recompensa se encontra no esforço e não no resultado. Um esforço
total é uma vitória completa
.” [Ghandi]

2015-04-07 3:22 GMT+10:00 amruby rem[email protected]:

Yes. You can do this.

But again. You should not instantiate a controller inside a Background
job.

===================
Alexandre Mondaini Calvão

Nossa recompensa se encontra no esforço e não no resultado. Um esforço
total é uma vitória completa
.” [Ghandi]

2015-04-07 15:25 GMT+10:00 amtest [email protected]:

Thanks for the reply, here i meant that , can call the one method with
*.delay, *

class TestDelay < ActiveRecord::Base
def start_worker
tc = TestController.new

 #Here calling that main function

end
end

this whole function works as a background job, that means
*TestDelay.delay.*start_worker, is there any issues?

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs