Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Cron作业没有';I don’我不能和你一起工作_Ruby On Rails_Ruby_Cron_Whenever - Fatal编程技术网

Ruby on rails Cron作业没有';I don’我不能和你一起工作

Ruby on rails Cron作业没有';I don’我不能和你一起工作,ruby-on-rails,ruby,cron,whenever,Ruby On Rails,Ruby,Cron,Whenever,我想创建一个schedule cron作业。 我什么时候都用。我的rails版本是4.1.6,我在osx中 所以我创建了一个ScheduleCron作业来进行测试 附表1.rb every 1.minutes do runner "DatabaseWatcher.run" end 补丁: /lib/DatabaseWatcher.rb 类别: class DatabaseWatcher def run puts "test" e

我想创建一个schedule cron作业。 我什么时候都用。我的rails版本是4.1.6,我在osx中

所以我创建了一个ScheduleCron作业来进行测试

附表1.rb

every 1.minutes do
    runner "DatabaseWatcher.run"
end
补丁:

/lib/DatabaseWatcher.rb
类别:

class DatabaseWatcher
        def run
            puts "test"
        end
     end
在这之后,我做了:

每时每刻$

## [message] Above is your schedule file converted to cron syntax; your crontab file was not updated.
## [message] Run `whenever --help' for more options.
$w-w

[write] crontab file written
我从未在命令行中看到“test”。
我做错了什么?

我以前已经犯过这个错误。 使用
.self
在run方法中添加class方法。如果
/lib/DatabaseWatcher.rb
中的DatabaseWatcher没有调用,则必须移动到app/models/database_watcher.rb文件夹中

class DatabaseWatcher
  def self.run
    puts "test"
  end
end
这是为了在环境开发中更新crontab

# to update crontab
whenever --update-crontab --set environment=development
# show crontab list
crontab -l
供参考:


  • 它不是通过终端会话运行的,所以它没有输出。用
    crontab-l
    #的输出更新您的问题:/Users/diogo/MIT/config/schedule.rb*****/bin/bash-l-c'ls'#在:/Users/diogo/MIT/config/schedule.rbcrontab的生成任务没有任务时开始,因此我不会运行,你需要弄清楚为什么它不写信给你crontab@Zahid错误的粘贴。这是最后一个版本:#为:/Users/diogo/MIT/config/schedule.rb*****/bin/bash-l-c'cd/Users/diogofrazao/MIT&&bin/rails runner-e production'\''DatabaseWatcher.run'\''''.\35;为:/Users/diogo/MIT/config/schedule.rb生成任务时结束他所说的内容。尝试从rails控制台运行命令:
    DatabaseWatcher.run
    。它将给出一个错误。这不是正确的ruby语法。您需要将其设置为类方法。