2016-12-14 27 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上運行時應該繼續執行(即,如果退出,則導致崩潰)。也就是說,我不相信它會包含一個調度程序,所以你仍然需要一些東西來觸發任務。