delayed_job能够讲比较耗时的任务在后台运行,好比发送邮件,下载,修改图片等等 git
github上有介绍,咱们这里使用collectiveidea的 github
https://github.com/collectiveidea/delayed_job 数据库
并且他支持咱们多种数据库做为队列。ActiveRecord ,DataMapper,IronMQ,Mongoid,MongoMapper,MongoMapper ,Redis
这里直接试用ActiveRecord。 ruby
直接在Gemfile里添加
app
gem 'delayed_job_active_record'而后bundle install就好。
delayed_job须要一个表来看成队列,直接运行下面的代码就能建立好 ide
rails generate delayed_job:active_record rake db:migrate
可是有不少项目有不少数据库的,并且是不用database.yml的,还有的状况就是须要将这个队列另外单独使用一个数据库。这种状况只须要先在须要的数据库里建立所需的表,而后讲相关配置写入一个Helper中,使用delayed_job前加入下面这一行代码便可。 idea
ActiveRecord::Base.establish_connection ModelHelper.get_delayed_job_db_conf
这样生成的队列就会保存在相应的表中 spa
对应的 在config/initializers/delayed_job_config.rb中也须要加入如下代码 code
ActiveRecord::Base.establish_connection ModelHelper.get_delayed_job_db_conf这样启动work后才会找到相应的队列
这样就能够正常使用delayed_job了,具体的方法看github吧
队列