当我在生产环境中启动我的应用程序以在将其发布到服务器之前对其进行测试时,我注意到由Resque.enqueue(worker)调用的数据库操作之一是在WRONG数据库上执行的! development.sqlite3而不是production.sqlite3。 我同时使用零配置文件运行服务器和resque。 必须有某种方法在正确的环境中运行redis或resque。
defaults: &defaults
host: localhost
port: 6379
development:
<<: *defaults
test:
<<: *defaults
staging:
<<: *defaults
production:
<<: *defaults
我发现此redis配置文件可能包含密钥,但redis不喜欢它,说
*** FATAL CONFIG FILE ERROR ***
Reading the configuration file, at line 1
>>> 'defaults: &defaults'
Bad directive or wrong number of arguments
您是否在生产环境中开始了Resque Worker? 你可以这样
$ RAILS_ENV=production QUEUE=* rake resque:work