2016-07-13 71 views
5

我有一個應用程序,我已經在Heroku上啓動,但芹菜擊敗過程不啓動時,我啓動服務器。芹菜擊敗不在Heroku開始

Procfile

web: gunicorn -w 4 connect.wsgi 
celery: python manage.py celeryd -c 3 --beat 

的工人可以被看作是開始Heroku的應用程序啓動後:

$ heroku ps 

=== web (Free): gunicorn -w 4 connect.wsgi (1) 
web.1: starting 2016/07/13 16:17:18 -0400 (~ 9s ago) 

=== celery (Free): python manage.py celeryd -c 3 --beat (1) 
celery.1: up 2016/07/13 16:17:25 -0400 (~ 2s ago) 

然而,爲了獲得芹菜節拍進程在運行,我有在Heroku中明確地啓動它:

heroku run python manage.py celerybeat 

芹菜擊敗當地罰款。這是Heroku的限制還是我做錯了什麼?

回答

4

如果我沒有弄錯,Heroku在一個應用程序中只允許兩個免費的Dyno實例。

+0

這太糟糕了......奇怪的是,您可以在終端中啓動一個流程,以獲得第三個流程。 –

1

@Jared Goguen:嗨,夥計,

您可能需要擴大你的工人的Heroku,

部署在Heroku

如果您已經創建了一個Procfile上方和連接合適的消息代理和結果存儲的附加組件,所有剩下要做的就是推送和縮放應用程序:

git push heroku master 

heroku ps:scale worker=1 

當然,在任何時候你可以擴展到任意數量的工人dynos。現在運行就像你在本地做了一個任務:

heroku run python 

>>> import tasks 
>>> tasks.add.delay(1, 2) 

你應該看到任務的應用程序日誌運行:

heroku logs -t -p worker 

來源:Heroku Guides

+0

PS:我很抱歉格式不好,所以給了我引用代碼的錯誤。 –

+0

之前嘗試過,並遇到「沒有足夠的dynos」問題,哦。 –

+0

正如@Muhlen在另一個答案中所說的,你需要升級你的賬戶,當然你可以從終端開始它,但是同一個測試儀將會出現它(_not recommended_) –

1

如果您運行一個免費的層級heroku與一個單一的測試儀,那麼你最好打賭是使用工頭honcho python克隆一個工具管理基於Procfile的應用程序。克隆https://github.com/nickstenning/honcho,這將允許您爲您的芹菜節奏/工作者分叉多個過程。您仍然會受到heroku的免費級內存512MB ram和動態測試工作時間的限制。所以沒有什麼太沉重利於快速開發和POC的

安裝町

PIP安裝町

確保町是你requirement.txt

PIP凍結>中的部分要求。TXT

創建ProcfileHoncho存儲您的所有原始Procfile內容

ProcfileHoncho

web: gunicorn myDjangoApp.wsgi --log-file - 
worker1: celery -A myDjangoApp beat -l info 
worker2: celery -A myDjangoApp worker -l info 

Procfile

web: honcho start -f ProcfileHoncho 

確保您通過配置V負載了你的經紀人網址並指向您的免費託管經紀商。相信你能找到一個免費代理與快速谷歌搜索

git push heroku master 
heroku logs -t 

退房日誌看看他們是任何錯誤。此時你應該很好走。