DB调用终止程序

时间:2014-01-18 07:07:28

标签: ruby

我有一个用Ruby编写的程序,后端有Sql Server 2008。现在我正面临一个问题,我将在下面讨论这个问题。

考虑我有functionA()functionB()。正在循环调用fuctionA()functionB()。当然它是DB,在这些函数内的每次调用之后连接都是打开和关闭的。

我在1m之后安排了Rufus调度程序,默认情况下在自己的线程中调用fuctionA()。当Rufus中的functionA()触发时,程序会终止,请记住functionA()functionB()在循环中不断运行。当我在Rufus中注释functionA()时,程序顺利执行。可能是什么原因?请指导。

class TestRufus

def初始化  @dps =无  @mu = Mutex.new
 结束   def get_data()     victim_device = VictimDevice.new()     app_config = YAML.load_file(“#{File.dirname( FILE )} /../../ config / sa.gw.c.victim.yml”)     scheduler = Rufus :: Scheduler.new
    scheduler.every“10s”做       handle_rufus
    结束

loop do              
   begin           
   @mu.synchronize  {
   @dps = victim_device.get_device_proximitysett(8)
    }     
    puts "DeviceID : #{@dps.device_id} AlertDistance: #{@dps.victim_prox_alert_dist} VoilationDistance : #{@dps.victim_prox_viol_dist}"       
    rescue => e
    time_of_error = Time.now.gmtime.to_s()           
    puts("Error occurred: #{time_of_error} - #{e.message}")

    end       
end
end #end of function

def  handle_rufus()
puts 'In Rufus.' 
begin
    @mu.synchronize  {
  @dps = victim_device.get_device_proximitysett(8)
  }
  rescue => e
    puts 'Error #{e.message}'
  end  
  puts "Rufus got! #{@dps.device_id} "
  puts 'Out Rufus.'              
end  

结束#class of class

obj = TestRufus.new   obj.get_data()

提前谢谢。

0 个答案:

没有答案