如何在生产中使用Rails低级缓存?

时间:2019-04-24 17:03:13

标签: ruby-on-rails caching

我有一个调用API并使用令牌进行身份验证的应用程序。我需要存储此令牌并经常刷新它,因此我在自定义类中使用def authenticate Rails.cache.fetch(@token, expires_in: 2.hours.to_i) do login_uri = @base_uri + "auth/login" auth_response = HTTParty.post(login_uri, body: { username: ENV["API_USERNAME"], password: ENV["API_PASSWORD"] } ) @token = auth_response.parsed_response["token"] end end 来处理API调用。这在我的本地开发机器上效果很好,但在生产中却出错。我正在为我的开发机运行Mac,并且生产在Ubuntu 18上进行。这是引发错误的代码:

Errno::ENOTDIR (Not a directory @ rb_file_s_rename - 
 (/var/www/myapp/releases/20190424134348/tmp/cache/.00020190424-1954-lgpvq5, 
  /var/www/myapp/releases/20190424134348/tmp/cache/001/000/)):

这是我遇到的错误:

/001

Rails出于某种原因似乎正在尝试重命名或移动缓存文件。查看服务器上的/000目录,但是子目录static int maze2[][] = {{1, 1, 1, 1, 1, 0, 1, 1, 1, 1}, {1, 1, 1, 0, 0, 0, 0, 0, 0, 1}, {1, 0, 0, 0, 1, 0, 1, 0, 0, 1}, {1, 0, 0, 1, 1, 0, 1, 1, 0, 1}, {1, 1, 0, 0, 1, 0, 1, 1, 0, 1}, {1, 0, 0, 1, 1, 0, 1, 0, 0, 1}, {1, 1, 0, 0, 1, 0, 1, 0, 1, 1}, {1, 0, 0, 1, 1, 0, 1, 0, 0, 1}, {1, 1, 0, 0, 1, 0, 1, 0, 1, 1}, {1, 1, 1, 1, 1, 0, 1, 1, 1, 1}}; 不存在。

0 个答案:

没有答案