我已經看到Heroku收費15美元/月運行延遲工作,每天3美元運行cron任務。是否可以完全跳過並手動運行我自己的cron任務?或者他們以某種方式搞清楚我正在運行cron任務?在Heroku上運行Cron任務
回答
我不完全確定你的意思是「手動運行我自己的cron任務」。對於cron,您需要訪問他們可以控制的crontab
,因爲它們是他們的服務器。如果你有另一種方式做,它可能會很好,但請記住,在Heroku下運行時,你的應用程序沒有綁定到特定的服務器,並且服務器將在執行之間改變。
另外,除非自上次檢查後更改了它,否則您可以免費運行每日cron任務,但每小時花費3美元/月。
編輯:是的,每日克朗是免費的。見http://addons.heroku.com/。
如果您在計算機上安裝Heroku gem,則可以手動運行的後臺任務如下:
$ heroku rake cron
(in /disk1/home/slugs/xxxxxx_aa515b2_6c4f/mnt)
Running cron at 2010/04/25 10:28:54...
這將執行完全相同的代碼爲Heroku的每日/每小時的cron插件做;也就是說,對於這個工作,你的應用程序必須有一個Rake文件與cron
任務,例如:
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
現在,只需直接添加heroku rake cron
命令一個crontab您的任何Unix服務器上,或甚至您的個人電腦的crontab
(如果您正在運行Linux或Mac OS X),並且您可以爲您的Heroku應用程序安排cron作業,而無需爲此付費。
是的,我已經成功地使用基本上運行
$ heroku rake <rake task>
在我需要的任何間隔我的本地服務器上的cron作業。我用過白楊和竹垛。
小揹包:PPP – mxcl 2012-02-02 13:07:03
如果您正在運行rails應用程序和安裝程序安裝程序,那麼您也可以只安裝像rufus-scheduler這樣的gem。我不知道這是不是出於某種原因的不好的做法,但這是我用我的應用程序做的,它似乎工作正常。
如果您想要安排計劃任務,您還可以使用http://guardiano.getpeople.in這是一項免費服務(適用於10個工作)以進行工作計劃。
您只需在應用程序中設置HTTP端點以接收POST或GET上的事件通知,並且還可以設置一些附加參數以防止未經授權的操作。
因此,如果您希望您的行動在將來運行一次或將分鐘設置爲您希望每隔X分鐘運行一次您的行動,那麼您在Guardiano中設置的工作將會保留http://yourapp.com/youraction並將「分鐘」留空。通過這種方式,您只需爲您創建應用程序的終端,並在此EP被調用時執行某些操作。
所以你的應用程序可以睡覺,你不需要花錢和時間設置工作,並保證他們正常工作。
恕我直言,如果你需要一個MVP的東西快,或者您需要安裝不同的應用程序有很多的工作比一樣,在這裏你可以真正外包cronjobs是相當不錯的免費服務。
有ASLO的Heroku的附加組件稱爲見風使舵要做到這一點,但我不知道還活着,工作
鏈接已損壞。 – chrishasbrouck 2016-02-14 04:42:48
現在有調度附加:http://addons.heroku.com/scheduler這是自由。 - 計劃程序加載項可以每10分鐘,每小時或每天對您的應用運行任意數量的命令。 – 2011-11-25 08:56:10
這個插件是免費的,但你仍然收取由被啓動的cron中的一次性預提過程到了極致小時。 – 2012-11-14 16:42:31
@EnricoCarlesso,它說「總計 - 每天20次或20次」。這是否意味着我可以免費每月只運行20次?所以沒有辦法每天免費運行一次,因爲它是30次? – 2014-11-30 11:32:21