2016-03-05 24 views
4

我是Heroku新手。我試圖實現一些簡單的(至少我希望),但似乎沒有直接的方式來這樣做。如何使用PHP程序自定義時鐘使用Heroku Worker作業?

我有幾個PHP文件,我試圖作爲計劃任務運行(每5分鐘)。這些運行有時可能需要超過30秒才能完成。因此,據我瞭解,我需要將它們設置爲工作者職位。

在Heroku上給出的例子似乎是一個複雜的例子,我無法理解現有的PHP文件應該如何標記爲worker。

此外,我想安排這個工人工作每5分鐘運行一次。文檔是指定製時鐘,但沒有PHP的例子。

有人可以請我指導一個關於如何使用工作進程和安排Heroku PHP程序的教程?初學者可以遵循的東西。

謝謝!

回答

-3

創建你的項目的根clock.py文件:

from apscheduler.schedulers.blocking import BlockingScheduler 
import os 
import sys 
import logging 

logging.basicConfig(stream=sys.stdout,level=logging.INFO) 

logging.info('clock init') 

sched = BlockingScheduler() 

@sched.scheduled_job('interval', minutes=1) 
def timed_job(): 
    //logging.info('log message') 
    //use this if you want to run console command 
    os.system("php bin/console app:check-feedback") 
    //or 
    //whatever you want to run that every 1 minutes 

sched.start() 

你的項目的根目錄下創建文件requirements.txt:

APScheduler==3.0.0 

加入這一行您的Procfile:

clock: python clock.py 

運行此Heroku的命令

$heroku buildpacks:add --index 2 heroku/python 

OR 在Heroku的儀表盤增加一個額外的蟒蛇buildpack你的測功機>應用程序>設置:

enter image description here

部署您的應用程序。 最後,加測功機到您的時鐘進程:

$heroku ps:scale clock=1 

檢查你的日誌:

$heroku logs --tail 
相關問題