On Thu, Feb 02, 2012 at 07:38:24PM -0800, Chris Conley wrote:
>
> Everything is working locally; workflows are launched from the app and the
> separate long-running rake task properly manages them. On Heroku, it seems
> workflows are getting launched properly but the separate long-running
> process isn't picking up on them.
Hello Chris,
this looks very good. I hadn't looked at Heroku in a while, I didn't know about
the background processes, it's brilliant.
I have a series of questions and checks, I'm trying to list
them from easy to hard (to answer/investigate):
== no errors appearing in the dashboard?
---8<---
pp ::RuoteDashboard.processes
pp ::RuoteDashboard.errors
--->8---
What do they yield ?
== is it really not picking up 'msgs'?
When you launch a process, it should place a "msg" in the "msgs" slot of
redis, does calling llen like in:
---8<---
require 'rubygems'
require 'redis'
redis = ::Redis.new()
p redis.llen('msgs')
--->8---
yield 1 all the time?
It should reach 0 (no work to do for the ruote worker) at some point. If it
stays at 1, it means the worker isn't picking up the tasks.
== is the worker redis conn pointing to the same :db as the front end?
You're using default settings for the Redis connection, could those two Ruby
processes point to different numbers? You could try setting it up in hard,
like in:
---8<---
engine = Ruote::Engine.new(
Ruote::Worker.new(
Ruote::Redis::RedisStorage.new('db'=> 14, 'thread_safe' => true)))
--->8---
== could 'thread_safe' => true help?
In the code right above, 'thread_safe' is set to true. Could it help?
Looking at the redis gem code (and at ruote[-redis] code), it seems it
shouldn't matter (and you're telling me that it works locally). But it's easy
to try.
== 1 in 21 drop
You've probably seen the latest messages in
http://groups.google.com/group/openwferu-users/browse_thread/thread/3513bc6fe783c570
1 in 21 "msgs" (workflow worker operations) get lost in case of high load.
But that does not seem to fit your issue description (nothing happening).
It's probably not that.
== instrument Ruote::Redis::Storage#get_msgs
You could add some debug/log output in
https://github.com/jmettraux/ruote-redis/blob/8b5e847874fb13753541e197de806ba312e739c8/lib/ruote/redis/storage.rb#L147-155
in your ruote-redis gem/bundle to see what's going on in there.
An answer for each question would be much appreciated. If you think of
anything else that might help, please tell me.
Best regards,
--
John Mettraux - http://lambda.io/processi
--
you received this message because you are subscribed to the "ruote users" group.
to post : send email to [email protected]
to unsubscribe : send email to [email protected]
more options : http://groups.google.com/group/openwferu-users?hl=en