[ruby-it] Eseguire codice dopo l'inizializzazione del sistema
Tud
tudrails a gmail.com
Lun 1 Set 2008 11:59:32 CEST
se hai Rails 2 o successive dai un'occhiata alla directory
config/initializers
http://ruby.html.it/faq/leggi/1288/che-cosa-sono-gli-initializer/
.Stefano
Daniele Tonon ha detto: in data 1-09-2008 10:48:
> Buongiorno,
> ho la necessità di avviare un processo in background, che accede al db,
> non appena l'applicazione Rails diviene attiva. Per l'esecuzione di tale
> processo ho optato per Spawn, il quale sembra funzionare correttamente.
> Trovo invece grosse difficoltà ad eseguire il codice allo startup.
>
> Spulciando la documentazione sul processo di init sembra che il posto
> migliore per inserire tale blocco sia nel config.after_initialize
> all'interno di config/enviroments/xxx.rb. Il problema è che Rails
> lamenta sempre un "undefined method spawn".
>
> Notando che nell'init.rb del plugin lo stesso viene incluso nella classe
> ActiveRecord::Base ho quindi optato per la creazione della seguente
> classe:
>
> class Setup < ActiveRecord::Base
> def initialize
> spawn do
> RAILS_DEFAULT_LOGGER.error('start bg controll process')
> while true
> .... code
> sleep(10)
> end
> end
> end
> end
>
> che istanzio dentro il solito file enviroment/....
>
> config.after_initialize do
> s = Setup.new
> end
>
> Questa volta nessuna lamentela per il plugin, ma ottengo un laconico:
>
> /Library/Ruby/Gems/1.8/gems/activerecord-2.1.0/lib/active_record/connection_adapters/sqlite3_adapter.rb:29:in
> `table_structure': Could not find table 'setups'
> (ActiveRecord::StatementInvalid)
>
> Che fare? :)
>
> Grazie.
>
> Daniele
>
More information about the Ml
mailing list