2016-08-13 69 views
3

我想知道Heroku Scheduler加載項和Heroku Temporize Scheduler加載項之間有什麼區別。他們似乎都是免費的,並且做預定的工作。Heroku Scheduler vs Heroku Temporize Scheduler有什麼區別?

他們如何比較在Heroku中運行Python sched

我想運行一個cron作業,每分鐘用Heroku Python保存到Postgres來抓取一些網站。 (我也試圖弄清楚如何在cron作業寫這樣做,但這是另外一個問題。)


更新與解決方案:

由於danneu的建議,工作解決方案使用的是Heroku Scheduler。感謝this tutorial,這非常簡單。

(我嘗試使用排程和扭曲,但是兩次我:

Application Error 
An error occurred in the application and your page could not be served. Please try again in a few moments. 

If you are the application owner, check your logs for details. 

這可能是由於我缺乏把他們在正確的地方的經驗,它沒有一個工作。同步工人Heroku guricorn。我不知道細節。)

回答

2

Temporize是第三方服務。你必須閱讀他們的免費計劃的限制。看起來免費計劃只允許您每天運行20次任務,這與您1分鐘的時間間隔相距甚遠。

Heroku的調度程序由Heroku提供。它爲每個任務啓動一個服務器併爲運行時計費。 Heroku調度程序的最小任務時間間隔爲10分鐘,這也不會給你你想要的。

對於1分鐘的時間間隔刮一個頁面,我只是在我的Heroku應用程序進程中運行一個併發循環。 Javascript中的setTimeout是可以與應用程序服務器並行運行的併發循環示例(如果您使用的是Node)。它看起來像Python sched鏈接中的Twisted示例是Python的等價物。

如果您使用Heroku的免費套餐(我認爲您是在IRC中看到您之後的),那麼一旦您驗證了您的帳戶(否則您只能獲得550小時),您每個月將獲得1,000個運行時間小時,意味着給他們你的信用卡號碼。一個測功機可以免費運行1000個小時。

但是,如果沒有收到HTTP請求,分數達到X分鐘,自由層dyno將會休眠(關閉)。顯然,Twisted/concurrent循環方法只在dyno喚醒並運行時起作用,因爲循環在你的應用程序進程中運行。

所以如果你的動態睡眠,你的併發循環將停止,直到你的dyno喚醒和恢復。

如果您希望您的測功機在整個月都保持清醒狀態,您可以將您的測功機升級爲7美元/月。

相關問題