摘要:簡介最近在工作中使用和來實現(xiàn)開發(fā)功能,其中使用到作為。實現(xiàn)功能如下方法將數(shù)據(jù)發(fā)送到服務(wù)器,通過寫入指定的后臺多帶帶啟動進程產(chǎn)生消費者將的數(shù)據(jù)寫入到此處的進程使用一個多帶帶的文件實現(xiàn),此時需要配置中使用的配置信息,包括一些其他的配置信息。
簡介
最近在工作中使用 Django 和 django-rest-framework 來實現(xiàn) API 開發(fā)功能,其中使用到 kafka 作為broker。
實現(xiàn)功能如下:
POST 方法將數(shù)據(jù)發(fā)送到服務(wù)器,通過kafka寫入指定的 topic;
后臺多帶帶啟動進程產(chǎn)生 消費者 將 broker 的數(shù)據(jù)寫入到 MySQL
此處的進程使用一個多帶帶的 python 文件實現(xiàn),此時需要配置中使用 django orm 的配置信息,包括一些其他的配置信息。
方法一其實這些信息也可以使用包含上下文信息的工具:
python manage.py shell
此處特別推薦神器 ipython 安裝如下:
pip install ipython
如果在這個交互環(huán)境中,可以享用一切 django 的配置,我一般常用于測試 django 的 model。
凡是都有個但是,但是我們還有 方法二。(都看到這里了,就忍忍看完)
方法二方法一 中很方便,但是使用起來只能在指定的交互環(huán)境中使用,不夠靈活。
【我想要實現(xiàn)的是】:我在任意位置的代碼、腳本中都可以很爽的使用 django 的配置
代碼如下:
import os,threading import sys BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.extend([BASE_DIR,]) os.environ.setdefault("DJANGO_SETTINGS_MODULE", "jrjidfa.settings") import django django.setup() from idfacollect.kafka_utils import Utils as kfk from idfacollect.kafka_utils import Config as cfg class Consumer(threading.Thread): def run(self): kfk.consume_to_mysql(host=cfg.KFK_HOST, port=cfg.KFK_PORT, topic=cfg.KFK_TOPIC_IDFA_DEVICE_STARTUP, group_id=cfg.KFK_GP_TO_MYSQL) kfk.consume_to_mysql(host=cfg.KFK_HOST, port=cfg.KFK_PORT, topic=cfg.KFK_TOPIC_IDFA_APP_CLICK, group_id=cfg.KFK_GP_TO_MYSQL) if __name__ == "__main__": try: for i in range(5): # create 5 thread exectue Consumer t = Consumer() t.start() except Exception as e: print e
說明一下:
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # 這個是想要使用的 `django` 工程的根目錄; sys.path.extend([BASE_DIR,]) # 將項目根目錄加入到 python 搜索的 path 中 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "jrjidfa.settings") # 設(shè)置環(huán)境變量中的 DJANGO_SETTINGS_MODULE 設(shè)置為 django 配置 import django django.setup() # 啟動 django 配置、注冊 app 等等初始化操作
總結(jié):接下來就可以愉快的使用了,看上面代碼就知道真的很愉快。
以上です!ありがとうございました
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/38302.html