我已经看到Heroku每小时收费15美元运行延迟工作,每天3美元/小时运行cron任务.有可能完全跳过它并手动运行我自己的cron任务吗?或者他们是否在某种程度上弄清楚我正在运行cron任务?
Luc*_*nes 22
我不完全确定你的意思是"手动运行我自己的cron任务".特别是对于cron,您需要访问crontab,他们可以控制,因为他们是他们的服务器.如果你有另一种方法,它可能会很好,但请记住,在Heroku下运行时你的应用程序没有绑定到特定的服务器,并且服务器将在执行之间切换.
此外,除非他们自上次检查后更改了它,否则您可以免费运行每日cron任务,但每小时费用为3美元/月.
编辑:是的,每日crons是免费的.见http://addons.heroku.com/.
Art*_*ken 10
如果在计算机上安装Heroku gem,则可以按如下方式手动运行cron任务:
$ heroku rake cron
(in /disk1/home/slugs/xxxxxx_aa515b2_6c4f/mnt)
Running cron at 2010/04/25 10:28:54...
Run Code Online (Sandbox Code Playgroud)
这将执行与Heroku的每日/每小时cron插件完全相同的代码; 也就是说,要使其工作,您的应用程序必须具有带cron任务的Rakefile ,例如:
desc "Runs cron maintenance tasks."
task :cron do
puts "Running cron at #{Time.now.strftime('%Y/%m/%d %H:%M:%S')}..."
# TODO: your cron code goes here
end
Run Code Online (Sandbox Code Playgroud)
现在,只需将heroku rake cron命令添加到您的任何Unix服务器上的crontab中,或者直接添加到您的个人计算机上,crontab如果您运行的是Linux或Mac OS X,并且可以根据需要为您的Heroku应用程序安排cron作业被指控的.
小智 5
更新 2020 年的答案:
您可以使用Heroku Scheduler,它是 Heroku 自己的附加组件,可让您使用一次性 dynos 安排命令(这样您只需为作业的运行时间付费)。附加组件本身是免费的,但实际上并不允许您使用 cron,而是使用普通频率:每天、每小时或每 10 分钟。此外,无法保证您的作业会在预定时间执行或完全执行。
还有其他3rd 方附加组件可以帮助您使用 cron 表达式运行一次性 dynos,以获得更好的灵活性,并且比 Heroku Scheduler 更具弹性(正确披露,我的公司是一个此类附加组件的创建者)。
您还可以使用自定义时钟进程(请参阅此处了解更多信息),这实质上意味着您有一个 dyno 或在其他 dyno 上运行的进程生成任务。这通常比使用上述附加组件成本更高,但您可以更精细地控制您的流程,并且由于您只依赖 Heroku,它可能更稳定。
| 归档时间: |
|
| 查看次数: |
22812 次 |
| 最近记录: |