Esempio n. 1
0
 def cas_init():
     cas = CAS()
     app = getAppMgr().get('flaskApp')
     cas.init_app(app=app)
     app.config['CAS_SERVER'] = 'https://cas.banggood.cn/cas/login'
     app.config['CAS_AFTER_LOGIN'] = '******'
     getAppMgr().insert('cas', cas)
Esempio n. 2
0
 def init_Admin():
     app = getAppMgr().get('flaskApp')
     db = getAppMgr().get('sqlAlchemyDB').getDB()
     admin = Admin(app, template_mode='bootstrap3')
     admin.add_view(MyView('my view'))
     admin.add_view(UserView(getAppMgr().get('User'), db.session))
     path = op.join(op.dirname(__file__), 'static')
     admin.add_view(FileAdmin(path, '/static/', name='Static Files'))
     getAppMgr().insert('admin', admin)
Esempio n. 3
0
 def __flaskAPIfunc(self, queue, flaskQueue):
     loggerInfo.info('flaskAPI进程拉起成功')
     self.queue = queue
     self.flaskQueue = flaskQueue
     getAppMgr().insert('flask-queue', queue)
     getAppMgr().insert('flask-flaskQueue', flaskQueue)
     try:
         flaskApi.run(self.queue, self.flaskQueue, True)
     except:
         loggerInfo.info('flaskAPI业务启动失败')
Esempio n. 4
0
    def index(self):
        print('==========' * 4)
        username = getAppMgr().get('cas').username,
        print(username)
        # display_name = getCAS().attributes['cas:displayName']
        # print(display_name)
        print('==========' * 4)

        return 'hello'
Esempio n. 5
0
    def init():
        app.config['SESSION_TYPE'] = 'filesystem'
        app.config['SECRET_KEY'] = os.urandom(24)

        getAppMgr().get('sqlAlchemyDB').sqlDB_init()
        getAppMgr().get('mycas').cas_init()
        getAppMgr().get('ApiServerAdmin').init_Admin()
Esempio n. 6
0
    def rigister():
        testApi = testRequestHandler()
        getAppMgr().get('RequestHandlerMgr').register(testApi)

        adApi = AdComposingApiRequestHandler()
        getAppMgr().get('RequestHandlerMgr').register(adApi)

        loginApi = LoginApiRequestHandler()
        getAppMgr().get('RequestHandlerMgr').register(loginApi)
Esempio n. 7
0
    def __taskRun(self, queue):
        loggerInfo.info('__taskRun 业务队列管理进程成功拉起,尝试拉起进程池')
        try:
            self.queue = queue
            self.pool = multiprocessing.Pool(
                processes=parameters.QUEUE_TASK_COUNT)
            loggerInfo.info('业务进程池拉起成功,开始分发业务')
        except:
            loggerInfo.info('业务进程池拉起失败')
            self.pool = None
            self.taskPoolMgr = None

        loggerInfo.info("开始业务循环派发(从消息队列中取消息)")
        while True:
            loggerInfo.info("获取消息队列中的一个消息")
            data = self.queue.get()
            loggerInfo.debug("消息:" + str(data))
            loggerInfo.info("获取消息结束")
            loggerInfo.info("发送消息到具体业务处理方法")
            self.pool.apply_async(getAppMgr().get('taskQueue').run, (data, ))
            loggerInfo.info("业务处理结束")
Esempio n. 8
0
from flask_cas import CAS
from app.app import getAppMgr


class mycas(object):
    @staticmethod
    def cas_init():
        cas = CAS()
        app = getAppMgr().get('flaskApp')
        cas.init_app(app=app)
        app.config['CAS_SERVER'] = 'https://cas.banggood.cn/cas/login'
        app.config['CAS_AFTER_LOGIN'] = '******'
        getAppMgr().insert('cas', cas)


getAppMgr().insert('mycas', mycas)
Esempio n. 9
0
#建议用tornado与gevent封装flask,以添加并发能力
from flask_api import FlaskAPI, status, exceptions
from flask import request, url_for
import os

from flask_cas import login_required

import server
import server.flask.ApiServerTornado
from app.app import getAppMgr

try:
    loggerInfo = getAppMgr().get('log')
except:
    import logging
    loggerInfo = logging.getLogger()

app = FlaskAPI(__name__)
getAppMgr().insert('flaskApp', app)

task_queue = None
requestHandMgr = getAppMgr().get('RequestHandlerMgr')


class flaskApi(object):
    @staticmethod
    def init():
        app.config['SESSION_TYPE'] = 'filesystem'
        app.config['SECRET_KEY'] = os.urandom(24)

        getAppMgr().get('sqlAlchemyDB').sqlDB_init()
Esempio n. 10
0
from app.app import getAppMgr

parser = argparse.ArgumentParser(description="广告系统系统参数帮助")
parser.add_argument("-s", "--stop", help="停止广告服务器", action="store_true")
parser.add_argument("-r", "--run", help="启动广告服务器", action="store_true")
parser.add_argument("-e", "--echo", help="显示一些位置执行命令等信息", action="store_true")

args = parser.parse_args()

runStr = 'source activate apiServer && nohup python ' + str(sys.path[0]) + '/main.py >/dev/null &'

if args.stop:
    os.system("ps  -ef|grep serverMgr.py|grep -v grep|grep wangxin|grep python|awk '{print $2}'|xargs kill -9")

if args.run:
    os.system("ps  -ef|grep serverMgr.py|grep -v grep|grep wangxin|grep python|awk '{print $2}'|xargs kill -9")
    os.system(runStr)

if args.echo:
    print('-'*50)
    print('server path      ==> %s'%str(sys.path[0]))
    print('run server cmd   ==> %s'%runStr)
    print('-'*50)
    print('env cmd          ==> source activate apiServer')
    print('-'*50)

if __name__ == '__main__':
    getAppMgr().get('multiprocessManagementRun')()


Esempio n. 11
0
from app.app import getAppMgr

loggerInfo = getAppMgr().get('log')

class RequestHandlerBase(object):

    def init(self, key, request):
        self.key = key
        self.request = request

    def run(self, key, request):
        return None

    def pushData(self,data):
        tempData = {}
        tempData['key'] = self.key
        tempData['data'] = data
        getAppMgr().get('push_queue')(tempData)

    def taskQueue(self, data):
        loggerInfo.warning('没有复写taskQueue函数处理离线业务 key = %s, data = %s'%(str(self.key), str(data)))
        return None

getAppMgr().insert('RequestHandlerBase', RequestHandlerBase)
Esempio n. 12
0
 def pushData(self,data):
     tempData = {}
     tempData['key'] = self.key
     tempData['data'] = data
     getAppMgr().get('push_queue')(tempData)
Esempio n. 13
0
    def __repr__(self):
        return '<User %r>' % self.username

class sqlAlchemyDB(object):
    @staticmethod
    def sqlDB_init():
        app = getAppMgr().get('flaskApp')
        app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////Volumes/work/3.code/APIServer/tmp/test.db'
        db.init_app(app)

    @staticmethod
    def getDB():
        return db

getAppMgr().insert('User',User)
getAppMgr().insert('sqlAlchemyDB', sqlAlchemyDB)


'''
例子
db.create_all()
admin = User('admin', '*****@*****.**')
guest = User('guest', '*****@*****.**')
db.session.add(admin)
db.session.add(guest)
db.session.commit()
User.query.all()
User.query.filter_by(username='******').first()
'''
Esempio n. 14
0
 def sqlDB_init():
     app = getAppMgr().get('flaskApp')
     app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////Volumes/work/3.code/APIServer/tmp/test.db'
     db.init_app(app)
Esempio n. 15
0
from app.app import getAppMgr

class TaskQueue(object):
    @staticmethod
    def run(data):
        getAppMgr().get('RequestHandlerMgr').setTaskQueue(data)
        getAppMgr().get('log').warning('data:' + str(data))


getAppMgr().insert('taskQueue', TaskQueue)
Esempio n. 16
0
 def run(data):
     getAppMgr().get('RequestHandlerMgr').setTaskQueue(data)
     getAppMgr().get('log').warning('data:' + str(data))
Esempio n. 17
0
import os

from app.app import getAppMgr

path = os.path.join(os.path.abspath("."))
getAppMgr().insert('path', path)

dbpath = path + 'db/'
getAppMgr().insert('dbpath', dbpath)

Esempio n. 18
0
desc = \
{
	"siteflag":0,
	"sku":"SKU623093",
	"product_id":"996086",
	"cat_path":"892,1985,5146,5150",
	"title":"5Pcs Multipurpose Blackhead Acne Comedone Extractor Remover Stainless Steel Tool Set Kit",
	"description":"Material: Stainless Steel Tools Color: Silver Case Color: Black Weight: App 89g Size: As seen from the pictures",
	"language":"en",
	"urlCallback":"处理完业务后调用的回调url,可以自己随意填,通过自己制定url的方式给自己传递某些信息等,例如获取这是哪一个广告的处理返回数据"
}

notes = {
    'googleTitleptimize': '<谷歌广告优化接口>事例:(引号需要改成双引号)' + str(desc),
    'getAdText': '<获取广告文本接口>get请求参数(暂时不支持post):?sku=skuxxx&doman=1',
    'test': 'test',
	'adComposingApi':'广告组装api'
}

from app.app import getAppMgr

getAppMgr().insert('desc', desc)
getAppMgr().insert('notes', notes)
Esempio n. 19
0
#标准模块
import time
import multiprocessing

from app.app import getAppMgr

from server.flask.flaskAPIServer import flaskApi

loggerInfo = getAppMgr().get('log')

#个人模块
from server.config import parameters


class multiprocessManagementObj(object):
    def __init__(self):
        self.queue = multiprocessing.Queue()
        self.flaskQueue = multiprocessing.Queue()
        self.flaskProcessing = []
        self.taskPoolMgr = None
        self.pool = None
        self.nginxPort = parameters.NGINX_PORT

    def __flaskAPIfunc(self, queue, flaskQueue):
        loggerInfo.info('flaskAPI进程拉起成功')
        self.queue = queue
        self.flaskQueue = flaskQueue
        getAppMgr().insert('flask-queue', queue)
        getAppMgr().insert('flask-flaskQueue', flaskQueue)
        try:
            flaskApi.run(self.queue, self.flaskQueue, True)
Esempio n. 20
0
    def _singleton(*args, **kargs):
        if cls not in _instance:
            _instance[cls] = cls(*args, **kargs)
        return _instance[cls]
    return _singleton

@Singleton
class RequestHandlerMgr(object):
    def __init__(self):
        self.RequestHandlerList = []

    def register(self, classRequestHandler):
        self.RequestHandlerList.append(classRequestHandler)

    def getResponseData(self, key, request):
        for hd in self.RequestHandlerList:
            data = None
            if hd.key == key:
                data = hd.run(key, request)
            if not data is None:
                return data
        return None

    def setTaskQueue(self, data):
        for hd in self.RequestHandlerList:
            if data['key'] == hd.key:
                hd.taskQueue(data['data'])

# getAppMgr().get('rigister').rigister()
getAppMgr().insert('RequestHandlerMgr',RequestHandlerMgr())
Esempio n. 21
0
 def init():
     getAppMgr().insert('rigister', RequestRigister)
Esempio n. 22
0
from app.app import getAppMgr

loggerInfo = getAppMgr().get('log')
RequestHandlerBase = getAppMgr().get('RequestHandlerBase')

class LoginApiRequestHandler(RequestHandlerBase):

    def __init__(self):
        RequestHandlerBase.init(self, "login", None)

    def run(self, key, request):
        return {"Message": "接收到数据" + str(request.data), "Code": 0, "Succeed": True, 'V': 1.0, "data": str(request.args)}

    def taskQueue(self, data):
        print("hahahah 我处理了这个离线任务 data=%s"%str(data))
Esempio n. 23
0
    #这三个变量定义管理员是否可以增删改,默认为True
    can_delete = False
    can_edit = True
    can_create = True

    #这里是为了自定义显示的column名字
    def __init__(self, User, session, **kwargs):
        # You can pass name and other parameters if you want to
        super(UserView, self).__init__(User, session, **kwargs)

    column_labels = dict(
        username='******',
        # id='id',
        mail='email')


class ApiServerAdmin(object):
    @staticmethod
    def init_Admin():
        app = getAppMgr().get('flaskApp')
        db = getAppMgr().get('sqlAlchemyDB').getDB()
        admin = Admin(app, template_mode='bootstrap3')
        admin.add_view(MyView('my view'))
        admin.add_view(UserView(getAppMgr().get('User'), db.session))
        path = op.join(op.dirname(__file__), 'static')
        admin.add_view(FileAdmin(path, '/static/', name='Static Files'))
        getAppMgr().insert('admin', admin)


getAppMgr().insert('ApiServerAdmin', ApiServerAdmin)