Bonjour à tous

J'utilise la gem *daemon *mais mon programme ne lit pas toutes les données 
de ma table client : il y a 5 enregistrements, il s'arrête au deuxième !!! 
ça fait trois jours que je cherche, j'en peux plus ....
Voici mon code :

*runexecution *est la fonction que je lance depuis le bouton de mon 
formulaire; elle est décrite dans *app/controllers/executions_controller.rb*

  class ExecutionsController < ApplicationController
  
  def runexecution
     # 
============================================================================================================
     # DESCRIPTION : Permet de demarrer ou arreter l'execution d'un script 
(action=start ou stop)
     # 
============================================================================================================
     require 'daemons'      
     # ----------------------------
     # traitement des parametres
     # ----------------------------    
     return "" if params.nil? # ce test  permet de ne pas rentrer dans la 
fonction lors de l'appel via le menu
     action = ""
     params.each do |key,value| 
        action = "start" if (key.index("loopstart") != nil)
        action = "stop" if (key.index("loopstop") != nil)  
     end 
     logger.info("******************action="+action)       
     case action
     when "start"
        exedate = "2015-10-03 08:30"
        frequence = "0.05"
listclientselectionne = "1-2-3-4-5"
        paramopt = ""
        options = {:ARGV       => [action, paramopt, '--', exedate, 
frequence, listclientselectionne],
                   :dir_mode   => :script,
                   :dir        => 'tmp/pids',
                   :multiple   => true,
                   :ontop      => true,
                   :mode       => :load,
                   :backtrace  => true,
                   :monitor    => true,
                   :log_output => true
                  }
        logger.info("******************options="+options.to_s) 
        Daemons.run('myserver.rb', options)
        logger.info("******************FIN") 
        
     when "stop"
        logger.info("******************loopstop")            
     else
       redirect_to executions_execution_path
     end # case action
     
  end # runexecution
  
  end #class

le programme qui tourne en boucle est* myserver.rb* qui est à la racine de 
mon site :

#!/usr/bin/env ruby 
ENV['RAILS_ENV'] ||= 'production'
require File.expand_path('../config/environment',  __FILE__)
print "\nParametres= " + ARGV[0].to_s + "****" + ARGV[1] + "****" + ARGV[2] 
+ "\n"
exedate = ARGV[0] 
frequence = ARGV[1] 
listclientselectionne = ARGV[2]  
delai = frequence.to_f * 60   
listclientselectionne = listclientselectionne.split("-")
print "Nbclient=" + listclientselectionne.count.to_s + "\n"
loop do
  print Time.now.to_s + "\n"
  listclientselectionne.each do |idcl|
    print idcl + "\n"
    begin
      print "avant\n"
      objclient = Client.find(idcl)
      print "apres\n"
      if (!objclient.nil?)
        print objclient.lastname.to_s + "\n"
        # print objclient.name + "\n"
      else
        print "Erreur sur " + idcl + "\n"
      end
    rescue  ActiveRecord::RecordNotFound => e
      objclient = nil
      print "Erreur \n"
    end
  end
  sleep(delai)
end

et voici les résultat à 'écran

=> Booting Thin
=> Rails 4.1.7 application starting in production on http://0.0.0.0:3000
=> Run `rails server -h` for more startup options
=> Notice: server is listening on all interfaces (0.0.0.0). Consider using 
127.0.0.1 (--binding option)
=> Ctrl-C to shutdown server
Thin web server (v1.6.4 codename Gob Bluth)
Maximum connections set to 1024
Listening on 0.0.0.0:3000, CTRL+C to stop
myserver.rb: process with pid 28318 started.

Parametres= 2015-10-03 08:30****0.05****5-1-6-2
Nbclient=5
2016-08-31 15:47:56 +0200
1
avant
apres
DURANTON
2
avant
apres
VALENT
3
avant
log writing failed. closed stream
log writing failed. closed stream
log writing failed. closed stream


Si j'exécute le programme *myserver.rb* depuis la console avec *ruby 
myserver.rb 1 2 3 : *tout se passe bien; voici le stdout

# ruby myserver.rb 1 2 3
Parametres= 1****2****3
Nbclient=5
2016-08-31 16:04:10 +0200
1
avant
apres
DURANTON888
2
avant
apres
VALENT
3
avant
apres
VIGILE1AA
4
avant
apres
VIGILE2
5
avant
apres
DURANDTON



Si vous avez une idée

Merci beaucoup

*Ma config*

   - Debian GNU/Linux 7
   - Rails 4.17
   - Ruby 1.91
   

-- 
-- 
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
railsfrance@googlegroups.com
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
railsfrance-unsubscr...@googlegroups.com
--- 
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes 
Railsfrance.
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, 
envoyez un e-mail à l'adresse railsfrance+unsubscr...@googlegroups.com.
Pour plus d'options, visitez le site https://groups.google.com/d/optout .

Répondre à