这是我第一次安排任务,我不确定什么是最好的实现(或正确的实现)。
我的目标:我有一个红宝石rails 4应用程序安装与twilio,并部署在Heroku上。我希望这个应用程序每周自动给我的所有用户发一次短信(这是由数据库中的信息编写和创建的)。
通过研究,我得出了以下几点结论:什么时候都行和Rufus-Scheduler。
我相信这两种宝石都能完成任务,但是在阅读Rufus的文档时:“请注意:Rufus-调度程序不是cron替代器”,我一直想弄明白我想要的是cron工作还是" rufus-scheduler“。
给我留下了以下问题:,什么是cron作业,什么时候使用它?为什么Rufus不是cron的替代品,它有什么不同之处?我应该用哪一种?
发布于 2014-04-30 03:06:21
关于Cron:
Cron是在nix系统上执行预定任务的程序名。Windows中的计划任务是什么,Cron在概念性level.Cron上为Linux做了类似的事情,是Linux或UNIX操作系统中最有用的工具之一。cron服务(守护进程)在后台运行,并不断检查/etc/crontab文件和/etc/cron./目录。它还检查/var/spool/cron/目录。
在Heroku上调度任务
好消息是,在Heroku上有一个叫做Scheduler的东西,它是一个附加功能,用于按预定的时间间隔在应用程序上运行作业,就像传统服务器环境中的cron一样。所以你真的不需要像任何时候那样摆弄或摆弄球杆或宝石。只需在Heroku上使用Scheduler词条即可。
发布于 2014-04-30 03:09:48
cron作业是使用cron软件在自动时间表上运行的程序。
Rufus-Scheduler不同于cron,因为它在Ruby进程中运行。
你所说的我相信两者都会好的。
发布于 2014-04-30 06:25:42
rufus-调度程序不是cron替代程序。
可以扩展为“rufus-调度程序从未作为cron的插入替代器编写”。更大的信息是:“你是一个开发人员,作为一个开发人员,你应该知道你所继承的环境以及它所带来的工具。你应该知道什么时候使用它们,什么时候模仿它们,什么时候替换它们。”
Rufus-调度程序理解Cron的"* * *“语法。这导致一些人说“rufus-调度程序试图成为Cron的替代品”。它可以更好地表述为“一些人滥用鲁弗斯调度器,而不是认为(知道)老忠实的克伦在这种情况下会更好”。
要成为一名优秀的开发人员,您应该认真考虑一些*nix sysadmin技能,否则,您将是一个痛苦的工作。它可以像“在您的系统中安装、运行和管理VirtualBox中的linux盒”一样简单。
rufus调度器计划在Ruby进程中运行。在一个普通的世界里,一个运行rufus调度程序的Ruby进程服务于http请求(Rails或Sinatra web应用程序),哦,噢,当应用程序不运行时,调度程序就不运行了。
Cron是由您的*nix操作系统提供的服务。主机上的其他应用程序和服务依赖于它。Cron读取它的crontab并在给定的时间运行其中指示的脚本。感谢优秀的“时刻”,可以告诉Cron在您的Rails应用程序中运行脚本。
您可能也对此感兴趣:https://devcenter.heroku.com/articles/clock-processes-ruby
https://stackoverflow.com/questions/23378897
复制相似问题