Question

J'ai une application Rails avec un démon qui vérifie les nouveaux messages dans une boîte aux lettres. J'utilise le plug-in Fetcher pour cette tâche. Le fichier démon ressemble à ceci:

#!/usr/bin/env ruby
require File.dirname(__FILE__) + '/../config/environment.rb'

class MailFetcherDaemon < Daemon::Base

  @config = YAML.load_file("#{RAILS_ROOT}/config/mail.yml")
  @config = @config['production'].to_options

  @sleep_time = @config.delete(:sleep_time) || 20
  def self.start
    puts "Starting MailFetcherDaemon"
    # Add your own receiver object below
    @fetcher = Fetcher.create({:receiver => MailProcessor}.merge(@config))
  ...

Je l'ai donc saisi les nouveaux courriels, les analyser et créer une ressource à partir des données analysées. Mais lorsqu'il essaie de sauvegarder la ressource, une exception est levée. En effet, l'environnement de développement est automatiquement attribué au script. Donc, il utilise ma configuration de base de données de développement au lieu de l'environnement de production (qui est la configuration que je veux).

J'ai essayé de démarrer le script avec:

 rails-root$ RAILS_ENV=production; script/mail_fetcher start

mais en vain. Il semble que lorsque je charge le fichier environment.rb, il se limite par défaut à l'environnement de développement et charge development.rb ainsi que la configuration de la base de développement à partir de database.yml.

Des pensées? Suggestions?

Merci

Était-ce utile?

La solution

Cela fonctionne dans mon application, la seule différence que je vois est l'absence de point-virgule

RAILS_ENV=production script/mail_fetcher start

Autres conseils

Alors quand vous dites

RAILS_ENV=production; script/mail_fetcher start

voulez-vous dire

#!/bin/bash
export RAILS_ENV=production
cd /path/to/rails_root
./script/mail_fetcher start

Vous pouvez essayer d'ajouter ceci à votre script:

ENV['RAILS_ENV'] = "production"

Vous pouvez également l'ajouter à la ligne de commande.

#!/bin/bash
cd /path/to/rails_root
./script/mail_fetcher start RAILS_ENV=production
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top