2016-12-14 60 views

回答

0

有一个node.js应用程序here,您可以使用它来安排特定的rake任务。

我没有使用过云项,所以我不确定它是否满足您的需求,但您也可以尝试一些批处理作业处理工具rails有:Delayed jobsidekiq。那些将数据存储在数据库(DJ)或单独的redis数据库(Sidekiq)中的重复性作业的数据都需要保留额外的进程并进行运行,因此在使用每个进程之前,深入检查它们以及部署过程所需的更改一。还有resque,和here's a tutorial to use it with rails for scheduling tasks

0

这里有多种解决方案,但简单的答案是,无论您最终需要实现自己的调度程序,这是因为在CF上运行时,应用程序没有可用的cron服务。这意味着没有什么可以触发或安排你的行动。部署到CF时,依赖于cron的任何项目或解决方案都不起作用。任何实现它自己的调度程序的项目都应该正常工作。

我见过的人一些具体的事情做成功:

  • 使用发送HTTP请求到您的应用程序在预定的时间间隔的Web服务。这些请求会触发您的操作。服务责任是让您定义何时触发和发送HTTP请求。我故意避免提及任何特定的服务,但你可以通过搜索“cron http服务”或类似的东西来找到它们。

  • 导入具有cron功能的库。我不熟悉Ruby,所以我不知道那里的风景。 @ mlabarca提到了一对夫妻,你可能会尝试。再次,看看他们是否实现了调度功能,并且不是依赖于cron。我更熟悉Java中Quartz和Spring,它也有一些调度功能。

  • 实施“时钟”进程或调度程序。这通常是您在CF上部署的第二个应用程序。这将是轻量级的,可能没有网络界面。它可以像做某事一样简单,睡觉,循环,以便重复这两个步骤。这真的取决于你的需求。你甚至可以看中并实现类似上面的第一个选项,在那里你发送某种请求到你的其他应用程序来触发实际事件。

也可能有其他的解决方案,这些只是一些例子,让你开始。可能还值得一提的是Cloud Controller v3 API will have first class features to run tasks。在这种情况下,“任务”是一些在有限的时间内运行并退出的作业(如批处理作业)。这与标准的“应用程序”相反,即在CF上运行时应该继续执行(即,如果退出,则导致崩溃)。也就是说,我不相信它会包含一个调度程序,所以你仍然需要一些东西来触发任务。