无法在 Ruby on Rails 中执行 cron

问题描述 投票:0回答:1

所以我是 Ruby on Rails 的新手,我正在做一个简单的 crontab

set :output, './log/cron.log'
set :environment, 'development'
every 1.minute do
  runner "puts 'Ola mundo!'"
end

我不知道为什么会收到此错误:

/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/bundler_version_finder.rb:80:in `pwd': Operation not permitted - getcwd (Errno::EPERM)
    from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/bundler_version_finder.rb:80:in `lockfile_contents'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/bundler_version_finder.rb:68:in `lockfile_version'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/bundler_version_finder.rb:22:in `bundler_version_with_reason'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/bundler_version_finder.rb:7:in `bundler_version'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/bundler_version_finder.rb:45:in `filter!'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/dependency.rb:284:in `matching_specs'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems.rb:272:in `find_spec_for_exe'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems.rb:302:in `activate_bin_path'
    from /usr/bin/bundle:23:in `<main>'

我的最终想法是创建一个作业来从网络获取数据并将其放入 Postgres 数据库(这已经完成)。我每天都需要这个来执行。 所以我考虑将 gem 'whenever' 与 gem 'delayed_job_active_record' 结合起来。我的方法正确吗?

ruby-on-rails cron delayed-job whenever
1个回答
0
投票

您对此目录的权限似乎出现问题。也许您运行了一些不应该运行的

sudo
内容。跳到终端并在此目录中运行:

sudo chown -R $USER .

这将递归地将当前目录的所有者更改为您自己的用户。

© www.soinside.com 2019 - 2024. All rights reserved.