I’m caching API data from flickr and delicious on my site. I’m using a
ruby script that goes out and collects the data, and marshal’s it. For
whatever reason, the cron job will not execute, so as a temporary
alternative, I’ve placed a “refresh” link that will update the cached
files. However, I cannot get this to execute on Dreamhost (works fine on
my windows machine). Here’s what I’m trying:
def refresh_api_cache
reload_cache(ENV[‘RAILS_ENV’]) and redirect_to :back
end
private
def reload_cache(env)
command = “ruby #{RAILS_ROOT}/script/custom/api_cache.rb”
case env
when /development|test/
system command
when /production/
exec command
end
end
If I change the production to be “system command” it won’t crash, but it
also won’t do anything. Just refreshes the page. I’ve also tried
directly running the script from it’s location:
“exec ~/site.com/site/script/custom/api_cache.rb”
It seems as though “exec” is crashing, and I’m not sure what to put in
that situation. Any tips on how to execute shell commands from Rails???
Thanks!