使用Python RQ的Python執行後臺任務

jieforest發表於2012-05-25
[i=s] 本帖最後由 jieforest 於 2012-5-25 14:44 編輯

RQ (Redis Queue)可以讓Heroku平臺上的Python應用輕鬆的執行後臺任務,RQ使用Redis作為佇列儲存,因此要使用 RQ 之前必須配置應用程式然後啟動並執行一個工作程式。

[size=18.0pt]安裝[size=18.0pt] RQ[size=18.0pt]
[size=10.5pt]

[size=10.5pt]可使用[size=10.5pt] pip [size=10.5pt]命令來安裝[size=10.5pt] RQ [size=10.5pt]以及其依賴的庫

CODE:

$ pip install rq
Downloading/unpacking rq
  Downloading rq-0.1.2.tar.gz
  Running setup.py egg_info for package rq
  ...
Successfully installed rq[size=10.5pt]接下來,記錄新的修改到應用中的 [size=12.0pt]requirements.txt [size=10.5pt]檔案:

CODE:

$ pip freeze > requirements.txt

[size=10.5pt]現在你已經準備好建立[size=10.5pt] worker [size=10.5pt]工作程式,建立名為[size=10.5pt] worker.py [size=10.5pt]的檔案,該模組將偵聽佇列中的任務並在接收到時處理它們。

CODE:

import os

import redis
from rq import Worker, Queue, Connection

listen = ['high', 'default', 'low']

redis_url = os.getenv('REDISTOGO_URL', 'redis://localhost:6379')

conn = redis.from_url(redis_url)

if __name__ == '__main__':
    with Connection(conn):
        worker = Worker(map(Queue, listen))
        worker.work()

[size=10.5pt]



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/301743/viewspace-730951/,如需轉載,請註明出處,否則將追究法律責任。

相關文章