def test_simple(): from thriftclient3.payprocessor import PayProcessor from zbase3.base import logger global log logger.install('stdout') log = logger.log log.debug('test ...') serverlist = [ { 'addr': ('127.0.0.1', 4300), 'timeout': 1000 }, { 'addr': ('127.0.0.1', 4200), 'timeout': 1000 }, ] sel = selector.Selector(serverlist) for i in range(0, 10): client = ThriftClient(sel, PayProcessor) client.ping() server = sel.next() server['valid'] = False #log.debug('restore ...') #restore(sel) print('-' * 60) for i in range(0, 10): client = ThriftClient(sel, PayProcessor) client.ping()
def test1(): from zbase3.base import logger logger.install('stdout') sendmail_balance( [ {'smtp':'smtp.exmail.qq.com', 'from':'*****@*****.**', 'password':''}, {'smtp':'smtp.exmail.qq.com', 'from':'*****@*****.**', 'password':''}, ], '*****@*****.**', 'haha', 'content test 222')
def test_thread(): from zbase3.base import logger logger.install('stdout') class TestThreadServer(BaseThreadServer): def make_task(self, client, addr): return MyTask(test_handle, client, addr) server = TestThreadServer(('127.0.0.1', 10000), TestHandler, 2) server.forever()
def test(): patch() from zbase3.base import logger logger.install('stdout') import redis conn = redis.Redis('172.100.101.106') with redis_lock(conn, 'test'): import time time.sleep(10) print(1)
def test_gevent(): from zbase3.base import logger logger.install('stdout') class TestGeventServer(BaseGeventServer): def make_server(self): server = StreamServer(self.addr, test_handle, spawn=self.pool) return server server = TestGeventServer(('127.0.0.1', 10000), TestHandler, 2) server.forever()
def test_gevent(): from zbase3.base import logger logger.install('stdout') from thriftclient3.session import Session import gevent class TestHandler: def ping(self): log.debug('pong') server = ThriftServer(('127.0.0.1', 10000), Session, TestHandler, max_proc=2) server.forever()
def test1(): from zbase3.base import logger global log log = logger.install('stdout') log.info('init') tp = ThreadPool(10) tp.start() class SimpleTask2(Task): def __init__(self, n, a=None): self.name = n super(SimpleTask2, self).__init__(a) def run(self): log.info('in task run, %s', self.name) time.sleep(2) log.info('ok, end task run %s', self.name) return self.name + '!!!' t = SimpleTask2('haha') log.info('add ...') tp.add(t) log.info('result:%s', t.get_result(1000)) tp.stop()
def test_thread(): from zbase3.base import logger logger.install('stdout') from zbase.thriftclient.payprocessor import PayProcessor class TestHandler: def ping(self): log.debug('pong') time.sleep(3) def trade(self, jsonstr): log.debug('recv:', jsonstr) server = ThriftThreadServer(PayProcessor, TestHandler, ('127.0.0.1', 10000), 2) server.forever()
def test4(): global session_refresh, log from zbase3.base import logger log = logger.install('stdout') cf1 = { 'store': 'SessionRedis', 'expire': 3600, 'db': 0, 'redis': {'host': '127.0.0.1', 'port': 6379}, } sids = [] for i in range(0, 5): x1 = create(cf1, None) x1['name'] = 'zhaowei' x1['value'] = random.randint(0, 100) x1.save() sids.append(x1.sid) log.debug('refresh cache: %s', session_refresh) print('-' * 30) for sid in sids: log.debug('check %s', sid) x1 = create(cf1, sid) x1._refresh_time = 2 x1.refresh() log.debug('refresh cache: %s', session_refresh) time.sleep(1)
def test1(): from zbase3.base import logger log = logger.install('stdout') fields = [ Field('age', T_INT), Field('money', T_FLOAT), Field('name'), Field('cate', T_INT), Field('income', T_INT), Field('test', T_INT), ] input = { 'name': 'aaaaa', 'age': '12', 'money': '12.44', 'cate__in': '1,2,3', 'income__bt': '1000,5000', 'no_tesst': '123' } x = Validator(fields) ret = x.verify(input) if ret: for q in ret: log.debug(q) else: log.debug('check ok') for f in x._fields: log.debug('name:%s, value:%s, valuetype:%s, op:%s' % (f.name, f.value, type(f.value), f.op))
def test_http(): from zbase3.base import logger from zbase3.base.httpclient import RequestsClient logger.install('stdout') SERVER = [ { 'addr': ('127.0.0.1', 6200), 'timeout': 20 }, { 'addr': ('127.0.0.1', 6201), 'timeout': 2000 }, ] client = HttpClient(SERVER, client_class=RequestsClient) while 1: print(client.get('/ping')) raw_input('go')
def test(): global log log = logger.install('stdout') class MyHandler: def ping(self, name): log.debug('ping ' + name) return 0, 'ping ' + name gevent_server(7000, MyHandler, proto='tcp,udp')
def test_name(): from thriftclient3.payprocessor import PayProcessor from zbase3.base import logger global log log = logger.install('stdout') log.debug('test ...') server_name = 'paycore' for i in range(0, 10): client = ThriftClient(server_name, PayProcessor) client.ping()
def test_fail(): from zbase3.base import logger log = logger.install('stdout') s = [ {'addr':('127.0.0.1', 1001), 'timeout':1000}, {'addr':('127.0.0.1', 1002), 'timeout':1000}, {'addr':('127.0.0.1', 1003), 'timeout':1000}, {'addr':('127.0.0.1', 1004), 'timeout':1000}, ] print('test roundrobin') servers = ServerList(s) for i in range(0, 10): one = servers.next() print(one) assert one['addr'][1] in (1001,1002,1003,1004) print('1002 1003 fail') servers.fail(s[1]) servers.fail(s[2]) for i in range(0, 10): one = servers.next() print(one) assert one['addr'][1] in (1001,1004) print('all fail') servers.fail(s[0]) servers.fail(s[3]) for i in range(0, 10): one = servers.next() print(one) assert one == None print('restore 1001 1002') servers.restore(s[0]) servers.restore(s[1]) for i in range(0, 10): one = servers.next() print(one) assert one['addr'][1] in (1001,1002) print('restore all') servers.restore(s[2]) servers.restore(s[3]) for i in range(0, 10): one = servers.next() print(one) assert one['addr'][1] in (1001,1002,1003,1004)
def test2(): from zbase3.thriftclient.encryptor import Encryptor from zbase3.base import logger global log logger.install('stdout') log = logger.log log.debug('test ...') serverlist = [ { 'addr': ('127.0.0.1', 4200), 'timeout': 1000 }, { 'addr': ('127.0.0.1', 4201), 'timeout': 1000 }, ] sel = selector.Selector(serverlist) for i in range(0, 10): client = ThriftClient(sel, Encryptor) client.ping()
def test4(): from zbase3.base import logger log = logger.install('stdout') from zbase3.web.httpcore import Request, Response class Req: def __init__(self, data): self.data = data def input(self): return self.data class Test: def __init__(self): self.req = Req({'name': 'aaaaa', 'age': '12', 'money': '12.44'}) self.resp = Response() @with_validator([ Field('age', T_INT), Field('money', T_INT), Field('name'), ]) def testfunc(self): log.info('testfunc ...') @with_validator([ Field('age', T_INT), Field('money', T_FLOAT), Field('name'), ]) def testfunc2(self): log.info('testfunc2 ...') @with_validator([ Field('age', T_INT), Field('money', T_FLOAT), Field('name', T_STR), ]) def testfunc3(self): log.info('testfunc3 ...') t = Test() t.testfunc() log.info('after validator: %s', t.validator.data) t.testfunc2() log.info('after validator: %s', t.validator.data) t.testfunc3() log.info('after validator: %s', t.validator.data)
def test_selector(): from thriftclient3.notifier import Notifier from zbase3.base import logger global log logger.install('stdout') log.debug("test framed transport") serverlist = [ { 'addr': ('172.100.101.151', 15555), 'timeout': 1000 }, ] sel = selector.Selector(serverlist) client = ThriftClient(sel, Notifier, framed=True) notify = { "notify_url": "http://172.100.101.151:8989/", "notify_data": { "orderstatus": "5", } } import json ret = client.send_notify(json.dumps(notify)) log.debug("send notify return:%s", ret)
def test_ping(port=1000): from thriftclient3.spring import Spring from zbase3.base import logger global log log = logger.install('stdout') log.debug('test ...') serverlist = [ { 'addr': ('127.0.0.1', port), 'timeout': 1000 }, #{'addr':('127.0.0.1',4201), 'timeout':1000}, ] sel = selector.Selector(serverlist) for i in range(0, 1000): client = ThriftClient(sel, Spring, framed=True) client.ping()
def test(): from zbase3.base import logger global log log = logger.install('ScreenLogger') tp = ThreadPool(10) for i in range(0, 100): t = SimpleTask(str(i)) tp.add(t) tp.start() while True: done, error = tp.info() log.info('applys:', done, error) cc = done + error time.sleep(1) if cc == 100: break tp.stop() log.info('end')
def test2(): from zbase3.base import logger global log log = logger.install('stdout') log.info('init') tp = ThreadPool(10) tp.start() def run(obj, name): log.info('in task run, %s', name) time.sleep(1) log.info('ok, end task run %s', name) return name + '!!!' log.info('add ...') t = TaskWait(func=run, name='haha') tp.add(t) log.info('result:%s', t.get_result(2)) tp.stop()
def test(): from zbase3.base import logger log = logger.install('stdout') s = [ {'addr':('127.0.0.1', 1000), 'timeout':1000}, {'addr':('127.0.0.1', 1000), 'timeout':1001}, {'addr':('127.0.0.1', 1000), 'timeout':1002}, {'addr':('127.0.0.1', 1000), 'timeout':1003}, ] print('test roundrobin') servers = ServerList(s) for i in range(0, 10): print(servers.next()) print('test random') servers = ServerList(s, 'random') for i in range(0, 10): print(servers.next()) s2 = [ {'addr':('127.0.0.1', 1001), 'timeout':1000}, {'addr':('127.0.0.1', 1002), 'timeout':1000, 'rule':[('amt','>',100), ('name','=','haha')]}, {'addr':('127.0.0.1', 1003), 'timeout':1000}, {'addr':('127.0.0.1', 1004), 'timeout':1000}, ] print('test rule') indata1 = {'name':'haha1111', 'amt':99} indata2 = {'name':'haha', 'amt':199} servers = ServerList(s2) for i in range(0, 10): print(servers.next(indata1)) print('test rule2 ---------') for i in range(0, 10): print(servers.next(indata2))
def test3(): from zbase3.base import logger log = logger.install('stdout') fields = [ Field('age', T_INT, must=False, default=18), Field('name', T_STR, must=True), Field('money', T_INT), ] input = {'name': 'aaaa', 'money': '12'} v = Validator(fields) ret = v.verify(input) # print(ret) # print(v.data) fields = [ Field('age', T_INT, must=False, default=18), Field('name', T_STR, must=True), Field('money', T_INT), Field('title', T_REG, match='.{3,20}'), ] input['title'] = '1111111' v = Validator(fields) ret = v.verify(input)
def test2(): from zbase3.base import logger log = logger.install('stdout') fields = [ Field('age', T_INT), Field('money', T_INT), Field('name'), ] Validator(fields) class Request: def input(self): return {'name': 'aaaaa', 'age': '12', 'money': '12.44'} class Test: GET_fields = [ Field('age', T_INT), Field('money', T_INT), Field('name'), ] def __init__(self): self.req = Request() @with_validator_self def GET(self): log.info('testfunc ...') def GET_error(self, data): log.info('error ...') t = Test() t.GET() log.info('after validator: %s', t.validator.data)
def test(): from zbase3.base import logger global log log = logger.install('stdout') data = [ { 'name': 'zh', 'age': 100, 'time': '2018-01-01 12:22:10', 'info': { 'm1': 100, 'm2': 'hehe' } }, { 'name': 'zh2', 'age': 100, 'time': '2018-01-01 12:22:10', 'info': { 'm1': 100, 'm2': 'hehe' } }, { 'name': 'zh', 'age': 80, 'time': '2018-01-01 12:22:10', 'info': { 'm1': 100, 'm2': 'hehe' } }, { 'name': 'zh', 'age': 110, 'time': '2018-01-01 12:22:10', 'info': { 'm1': 101, 'm2': 'haha' } }, { 'name': 'zh', 'age': 99, 'info': { 'm1': 101, 'm2': 'haha' } }, ] rules = [ { 'id': 1, 'rule': [('name', '=', 'zh'), ('age', '>', 90), ('time', 'bt', ('2018-01-01', '2018-01-02')), ('info.m2', 'in', ('hehe', 'haha'))], 'result': { 'age': '$age', 'm1': '$info.m1', 'my': 'me' } }, { 'id': 2, 'rule': [('age', '>', 100), ('info.m2', 'in', ('hehe', 'haha'))], 'result': { 'age': '$age', 'm1': '$info.m1', 'name': '$name' } }, { 'id': 3, 'rule': [('test1()', '>', 500), ('info.m2', 'in', ('hehe', 'haha'))], 'result': { 'age': '$age', 'm1': '$info.m1', 'name': '$name' } }, ] def test1(data): return data['age'] * 10 rule = Ruler(rules) rule.add_func('test1', test1) log.debug('rule:%s', rule) for x in data: log.debug('-' * 80) log.debug('data:%s', x) log.debug('result:%s', rule.check(x, 3))
CWD = os.path.dirname(os.path.abspath(__file__)) sys.path.append(os.path.dirname(CWD)) sys.path.append(os.path.join(os.path.dirname(os.path.dirname(CWD)), 'conf')) import json import urllib import urllib.request import pprint from zbase3.base import dbpool, logger import config_debug import config import createpass import datetime, time import urllib import urllib.parse log = logger.install('stdout') dbpool.install(config_debug.DATABASE) SERVER = '%s:%d' % (config.HOST, config.PORT) try: import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM, 0) s.connect((config.HOST, config.PORT)) except: SERVER = '%s:%d' % (config_debug.HOST, config_debug.PORT) class MyRequest(urllib.request.Request): method = 'GET' def get_method(self):
def test(): from zbase3.base import logger log = logger.install('stdout') #loc = os.path.join(path, 'templates') loc = '/Users/apple/projects/python/xx8xx8/web/templates/default/admin' r = Render(loc, 'tmp')
# coding: utf-8 from gevent import monkey monkey.patch_all() import os, sys HOME = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.append(os.path.join(HOME, 'conf')) import config from zbase3.base import logger logger.install(config.LOGFILE) from zbase3.server import thriftserver from zbase3.micro import thriftcore import main handler = None for k, v in main.__dict__.items(): if k.endswith('Handler'): if issubclass(v, thriftcore.Handler): handler = v break if not handler: print( 'Not found thrift handler in main.py !!! class must named XXXXHandler !!!' ) sys.exit(-1) server = thriftcore.MicroThriftServer(handler.define, handler, config) server.forever()
import sys HOME = os.path.dirname(os.path.abspath(__file__)) sys.path.append(os.path.join(os.path.dirname(HOME), 'conf')) from zbase3.base import logger,loader if __name__ == '__main__': loader.loadconf_argv(HOME) else: loader.loadconf(HOME) import config import urls # 导入服务日志 if config.LOGFILE: log = logger.install(config.LOGFILE) else: log = logger.install('stdout') from zbase3.base import dbpool from zbase3.web import core from zbase3.web import runner import datetime config.starttime = str(datetime.datetime.now())[:19] # 导入数据库 #dbpool.install(config.DATABASE) # 导入WEB URLS config.URLS = urls
def test3(): from zbase3.base import logger global log log = logger.install('stdout') log.info('init') tp = ThreadPool(10) tp.start() def run(obj, name): #log.info('in task run, %s', name) #time.sleep(1) #log.info('ok, end task run %s', name) return name + '!!!' log.info('add ...') t = Task(func=run, name='haha') tp.add(t) log.info('result:%s', t.get_result(1000)) # test n = 100000 # local tstart = time.time() for i in xrange(0, n): t = Task(func=run, name='haha') run(None, 'haha') tend = time.time() print('local call ## time:%.6f qps:%d avg:%d' % (tend - tstart, n / (tend - tstart), ((tend - tstart) / n) * 1000000)) # queue q = queue.Queue() tstart = time.time() for i in xrange(0, n): q.put(run(None, 'haha'), timeout=1) q.get() tend = time.time() print('queue call ## time:%.6f qps:%d avg:%d' % (tend - tstart, n / (tend - tstart), ((tend - tstart) / n) * 1000000)) # thread, task no wait tstart = time.time() for i in xrange(0, n): t = Task(func=run, name='haha') tp.add(t) #t.get_result(100) tend = time.time() print('thread call ## time:%.6f qps:%d avg:%d' % (tend - tstart, n / (tend - tstart), ((tend - tstart) / n) * 1000000)) # thread, task wait tp.stop() log.info('==== end ====')