How to ensure


#1

how do i get my app database info only after another server has
called my app’s method and
updated my app’s database? Now, i can just get the database info
before anther server calls my app’s method.

def one
some code
two
some code
end

def two
calls another server’s methods and sends my app ping url(http://
myhost/…/three) that will be automaticlly called by that server
after executing the two method
end

def three
another server calls this method and updates database
end


#2

I need your help!Thanks!


#3

It seems i have not show the question very clear.
While my app codes is accessing the db,anohter server is updating the
db.
so What i want is not accessing the db until the db is updated.I think
there must be a ruby or rails method to do it, but can not find it.
Thanks!


#4

hi,any one help me?


#5

2009/4/16 daociyiyou removed_email_address@domain.invalid:

end

def three
another server calls this method and updates database
end

Because of the way Rails is usually deployed, this will be very
difficult.
When Rails is first called and the code starts to execute, it is in
instance #1
It then runs through the code and calls a method that invokes the
remote service.
(now you want it to wait)
When the remote service calls back, because instance #1 is busy, it
will invoke the method on instance #2 which has no knowledge of
instance #1 or it’s waiting.

Two quick ways I can think of to solve this.

  1. Don’t let the remote service update the database, get it to return
    the data and you update the database within the same method call so
    you’re always in control
  2. If that’s not possible, return from the method and use AJAX or a
    page refresh to check if the remote service has done what it should
    and display the results after that.

Andrew T.
http://ramblingsonrails.com
http://www.linkedin.com/in/andrewtimberlake

“I have never let my schooling interfere with my education” - Mark Twain


#6

thanks.It seems i can not use active record callback.

On 4ÔÂ16ÈÕ, ÏÂÎç8ʱ22·Ö, Andrew T. removed_email_address@domain.invalid