【问题标题】:How can I run a Rake task as a Windows "scheduled task"?如何将 Rake 任务作为 Windows“计划任务”运行?
【发布时间】:2009-06-19 22:38:45
【问题描述】:
我有一个 rake 任务,我需要在 Windows XP 机器上作为日常工作运行。我发现了 Windows“计划任务”控制面板。我正在尝试弄清楚如何让它运行我的 Rake 任务。
其中两个字段是“运行”(带有浏览按钮)和“开始”。我尝试将rake mycategory:mytask 输入“运行”,并将包含 Rake 任务的 Rails 项目目录输入“开始”。结果是一条消息说任务“无法启动”。
如何设置 Windows“计划任务”来运行 Rake 任务?
【问题讨论】:
标签:
ruby-on-rails
windows
ruby
【解决方案1】:
如果您可以构建一个可以正确执行的批处理文件,我会这样做,然后您可以指示批处理文件与任务一起运行。
这样的事情应该可以工作:
:: Run task every hour
@call rake stats RAILS_ENV="production"
【解决方案2】:
此外,除了上述(正确的)批处理文件建议,AFAIK,您可能需要在设置了非空密码的帐户上运行任务。调度器的属性。
【解决方案3】:
只需为感兴趣的人添加更新/充实的答案...
创建一个名为 rake.bat 的文件 - 确保使用 ANSI 编码(Windows 记事本的默认设置)保存。你可以把这个文件保存在任何地方,但我把它放在C:\ror\rake.bat
rake.bat
@call bundle exec rake %*
现在,当您创建计划任务时,您可以将其设置为运行 .bat 文件,参数就是 rake 之后的内容。将其设置为在您选择的目录中运行。无论用户是否登录都运行,但不要以最高权限运行。为了清楚起见,下面的屏幕截图;我的 rake 任务命名空间为 manager,任务本身为 sync: