我正在遵循安装resque的配置指南.我遇到了一个(OpenURI :: HTTPError).我正在使用RVM 1.9.2-p180,rails 3.0.6和POW .'resque-web'无法启动500 Server Error.到底发生了什么事?
要复制问题:
redis-server$ VVERBOSE=1 QUEUE=file_serve rake environment resque:workRAILS_ENV=development resque-web config/initializers/resque.rb配置/ resque.yml
development: localhost:6379
test: localhost:6379
staging: localhost:6379
fi: localhost:6379
Run Code Online (Sandbox Code Playgroud)
初始化/ resque.rb:
rails_root = ENV['RAILS_ROOT'] || File.dirname(__FILE__) + '/../..'
rails_env = ENV['RAILS_ENV'] || 'development'
require 'resque'
# require 'yaml'
unless defined?($redis)
$redis = Redis.new($redis = Redis.new(:host => 'localhost', :port => 6379))
end
Resque.redis = $redis
Run Code Online (Sandbox Code Playgroud)
终奌站:
master ~/projects/MyApp $ RAILS_ENV=development resque-web config/initializers/resque.rb
[2011-05-20 11:42:48 -0700] …Run Code Online (Sandbox Code Playgroud) 我正在使用Resque处理我的后台作业.我的模型看起来像这样
class SomeClass
...
repo = Repo.find(params[:repo_id])
Resque.enqueue(ReopCleaner, repo.id)
...
end
class RepoCleaner
@queue = :repo_cleaner
def self.perform(repo_id)
puts "this must get printed in console"
repo = Repo.find(repo_id)
# some more action here
end
end
Run Code Online (Sandbox Code Playgroud)
现在要同步测试我已添加
Resque.inline = Rails.env.test?
Run Code Online (Sandbox Code Playgroud)
在我的config/initializers/resque.rb文件中
这应该调用#perform方法内联而不将其排入Redis并且没有任何Resque回调作为Rails.env.test?在测试环境中返回true.
但
"this must get printed in console"
Run Code Online (Sandbox Code Playgroud)
在测试时从不打印.我的测试也失败了.
有没有我错过的配置.目前我正在使用
resque (1.17.1)
resque_spec (0.7.0)
resque_unit (0.4.0)
Run Code Online (Sandbox Code Playgroud) 我创建了一些咖啡馆的工人,并试图使用红宝石版本的resque-web查看工人,只看到间歇性的工人闪光进出.
我注意到咖啡回收在暂停时解雇了工人.这是预期的行为吗?这使得resque web只列出了闪烁的间歇性工作者,并且当他们确实出现时,他们总是处于等待状态,即使这是他们正在处理的时候.
我做错了还是有建议的监控工作队列的方法?
另外,如果工作进程失败并且在退出时没有进行优雅的未跟踪,是否有办法在redis中清除非活动的孤立工作键?
我正在使用Heroku + RedisToGo + Resque.我有一个正在运行非结束任务的工人.我想要记录它的活动.heroku logs --tail没有显示有关工人活动的任何信息.我怎样才能做到这一点?谢谢!
我使用设计,我可以发送resque邮件.我使用这个wiki: 如何:在后台发送设计电子邮件(Resque,Sidekiq和Delayed :: Job)
我有排队但没有工人的工作.我是否必须创建任务或工作人员?
我在rails 3应用程序中使用resque:scheduler gem.
如何rake resque:scheduler以daemon模式启动.
如果你知道那么请告诉我,
如何在GOD脚本中配置此任务?
我在我的rails 4应用程序中使用resque和resque_scheduler.我的应用程序正在为resque做一些工作,但它们并没有被工人处理.reque-web显示没有失败.
我通过跑步开始了resque工作
QUEUE=kqueue rake environment resque:work
我的rails控制台
2.0.0p353 :006 > Resque.info
=> {:pending=>0, :processed=>0, :queues=>0, :workers=>1, :working=>0, :failed=>0, :servers=>["redis://localhost:6379/0"], :environment=>"development"}
2.0.0p353 :007 > Resque.redis
=> #<Redis::Namespace:0x007fbb0fbf3e58 @namespace=:resque, @redis=#<Redis client v3.0.6 for redis://localhost:6379/0>, @warning=false>
2.0.0p353 :008 > Resque.workers
=> [#<Worker xxx-macbook.local:16869:kqueue>]
Run Code Online (Sandbox Code Playgroud)
在redis上,
redis 127.0.0.1:6379> keys *
1) "resque:workers"
2) "resque:delayed_queue_schedule"
3) "resque:worker:xxx-macbook.local:16869:kqueue:started"
4) "resque:timestamps:{\"class\":\"InvokeScheduler\",\"args\":[{\"target\":\"/sendmail\",\"http_method\":\"post\",\"type\":\"signup_verification\",\"user_id\":31}],\"queue\":\"kqueue\"}"
5) "resque:delayed:1388832771"
Run Code Online (Sandbox Code Playgroud)
resque-web说:
0 of 1 Workers Working
Failed Jobs
Showing 0 to 0 of 0 jobs
Worker xxx-macbook.local:16869:kqueue
Host Pid Started Queues Processed Failed Processing …Run Code Online (Sandbox Code Playgroud) 有没有人能够在Rails 4.2中获得预定的工作?
我正在使用resque,我正在尝试使用resque-scheduler来安排作业.我有一个计划加载和调度程序运行,甚至看起来它正在运行作业但它没有做任何事情.
resque-scheduler: [INFO] 2014-09-16T01:54:25-07:00: Starting
resque-scheduler: [INFO] 2014-09-16T01:54:25-07:00: Loading Schedule
resque-scheduler: [INFO] 2014-09-16T01:54:25-07:00: Scheduling friends
resque-scheduler: [INFO] 2014-09-16T01:54:25-07:00: Schedules Loaded
resque-scheduler: [INFO] 2014-09-16T01:54:55-07:00: queueing FriendsJob (friends)
Run Code Online (Sandbox Code Playgroud)
我可以将这样的工作排队,然后进行处理.
TestJob.enqueue(params[:id])
Run Code Online (Sandbox Code Playgroud)
我在工作日志中得到了这个输出
got: (Job{default} | ActiveJob::QueueAdapters::ResqueAdapter::JobWrapper | ["TestJob", "98732ce5-17f7-4da3-9a03-a5d2f8f74e84", "8"])
** [01:24:01 2014-09-16] 54841: resque-1.25.2: Processing default since 1410855841 [ActiveJob::QueueAdapters::ResqueAdapter::JobWrapper]
** [01:24:01 2014-09-16] 54841: Running before_fork hooks with [(Job{default} | ActiveJob::QueueAdapters::ResqueAdapter::JobWrapper | ["TestJob", "98732ce5-17f7-4da3-9a03-a5d2f8f74e84", "8"])]
** [01:24:01 2014-09-16] 54841: resque-1.25.2: Forked 54882 at 1410855841
** [01:24:01 2014-09-16] 54882: Running after_fork hooks …Run Code Online (Sandbox Code Playgroud) ruby-on-rails resque ruby-on-rails-4 resque-scheduler rails-activejob
我有像Rails自定义环境一样的问题Resque.enqueue不创建作业,但那里的解决方案对我不起作用.
我正在使用Resque几个异步作业.它适用于staging环境,但由于某种原因它停止了development环境工作.
例如,如果我运行以下内容:
$ rails c development
> Resque.enqueue(MyLovelyJob, 1)
Run Code Online (Sandbox Code Playgroud)
什么都没有排队.我检查Resque使用resque-web
如果我在分期运行它 - 它工作得很好.
$ rails c staging
> Resque.enqueue(MyLovelyJob, 1)
Run Code Online (Sandbox Code Playgroud)
我试图复制2环境,他们似乎使用完全相同的配置(database.yml,配置/环境等),但development仍然无法正常工作.
如果我做
> Resque.enqueue(UpdateInstancesData, 2)
> => true
> Resque.info
> => {
> :pending => 0,
> :processed => 0,
> :queues => 0,
> :workers => 1,
> :working => 0,
> :failed => 0,
> :servers => [
> [0] "redis://127.0.0.1:6379/0"
> ], …Run Code Online (Sandbox Code Playgroud)