def main(): logger.init_log('lvl_core', 'lvl_core') setproctitle('lvl:core') IncomingServer(handle_req, log=False).listen( parse_ip_port( dict(conf_load('leveldb.ini')).get('leveldb.ini').get( 'default', 'host'))[-1]) IOLoop.instance().start()
#coding:utf-8 from tornado.ioloop import IOLoop from tornado.gen import coroutine from core import APNsClient from util.stream_config_client import load as conf_load import time from encoding import v2_encode from util.convert import parse_ip_port compile_type = 'dev' bundle_id = 'com.beiqi.helpers' conf = dict(conf_load('apns.ini')).get('apns.ini') section = ':'.join((compile_type, bundle_id)) cert_fn = conf.get(section, 'cert') def run(): device_token = 'fe9ffe531afbab4f8f44cf220de67e9c39ddf45874eaaa90559426d002f56a91' device_token = '3f24b320810a1ee6de177f2362f7fb6706a84b92e30a1182ee77443d239c634e' apns_client = APNsClient(cert_fn, parse_ip_port(conf.get('_apns', compile_type)), v2_encode) for i in xrange(10): print 'i = ', i apns_client.queue_push( device_token, { 'aps': { 'alert': 'hello tornado push' + str(i), 'badge': 1,
#coding:utf-8 import site, os site.addsitedir(os.path.dirname(os.path.realpath(__file__))) site.addsitedir(os.path.dirname(os.path.dirname(os.path.realpath(__file__)))) site.addsitedir( os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), "common_server")) from util.stream_config_client import load as conf_load from util.convert import resolve_redis_url mq_conf = dict(conf_load('mq.ini')).get('mq.ini') #单通道默认进程数,通过 ratio 字段覆盖 default_process_ratio = mq_conf.get('_task', 'process_ratio') #单通道是否启动,通过 run 字段覆盖 run_process = mq_conf.get('_task', 'run_process') for section in (s for s in mq_conf.get_sections() if not s.startswith('_')): ratio = mq_conf.get(section, 'ratio') or default_process_ratio run_or_not = mq_conf.get(section, 'run') or run_process for field in (f for f in mq_conf.get_fields(section) if f.startswith('url_')): host, port, db_list, pwd = resolve_redis_url( mq_conf.get(section, field)) channel = mq_conf.get(section, 'ch') if isinstance(db_list, int): db_list = (db_list, ) for db in db_list: #通过|分隔参数 output = '|'.join(('redis://{0}:{1}/{2}?pwd={3}#{4}'.format( host, port, db, pwd, channel), ratio, run_or_not))
#coding: utf-8 from util.redis.redis_client import Redis from util.stream_config_client import load as conf_load _redis_conf = dict(conf_load('redis.ini')).get('redis.ini') baidu_api_redis = Redis(_redis_conf.get('cloud_push', 'url')) def set_api_key(app_id, api_key, secret_key): baidu_api_redis.send_multi_cmd(('set', ':'.join( ('appid', app_id, 'apikey')), api_key), ('set', ':'.join( ('appid', app_id, 'secretkey')), secret_key)) def init_app(): app_id = raw_input('app id:') api_key = raw_input('API Key:') secret_key = raw_input('Secret Key:') set_api_key(app_id, api_key, secret_key) #不用在此处设置ios证书,因为实际上百度api也是上传证书内容到其服务器 #与在百度管理后台设置效果一样 print('初始化成功') if __name__ == '__main__': init_app()
#coding:utf-8 from utils import logger from util.oem_account_key import oem_accounts, beiqi_keys from util.stream_config_client import load as conf_load from util.redis.redis_client import Redis from util.oem_conv import get_mb_key from util.lib_tr.tr import tr_txt, resolve_lang from util.lib_tr.langs import sms_template from vcomcn import vcomcn_sms _account_cache = Redis( dict(conf_load('redis.ini')).get('redis.ini').get('oauth', 'url')) default_arg = { 0: '凌拓', 1: '邦邦熊', } def sms_func(api_key): """ 获取调用短信方法 :param api_key: """ logger.debug('sms_func: {0}'.format(api_key)) if not api_key or api_key in beiqi_keys: #没有akey return vcomcn_sms ob = oem_accounts.get(api_key) if not ob: #oem key不存在
#coding:utf8 from utils import logger from util.sso.dev_active import * from util.redis.redis_client import Redis from util.stream_config_client import load as conf_load from util.convert import combine_redis_cmds from util.bit import span_bits from . import find_push from copy import deepcopy group = dict(conf_load('redis.ini')) redis_conf = group.get('redis.ini') redis_cal = Redis(redis_conf.get('calculation', 'url')) dev_filter = Redis(redis_conf.get('dev_filter', 'url')) account_cache = Redis(redis_conf.get('oauth', 'url')) def handle_pid_account(account): if len(account) == 6: # pid return account + '@jiashu.com' return account def app_1push(push_body, account): """ app1次推送 :param push_body: :param account: :return:
#coding:utf-8 from utils import logger from util.internal_forward.apple_push_encode import encode as apns_encode from tornado.gen import coroutine from util.internal_forward.gen_internal_client import GeneralInternalClient from util.stream_config_client import load as conf_load from util.convert import parse_ip_port apns_client = GeneralInternalClient( parse_ip_port( dict(conf_load('apns.ini')).get('apns.ini').get('_default', 'host'))) @coroutine def invoke(push_body, channel_args): """ :param push_body: dict """ try: if not (push_body and isinstance(push_body, dict)): logger.warn('ios_invoke push_body: {0}'.format(push_body)) return if 3 != len(channel_args): logger.warn('invalid ios args: {0}'.format(channel_args)) return alert = push_body.get('description') push_body = dict(((k, push_body.get(k)) for k in ('cb', 'f', 'id'))) r = yield apns_client.forward(
#coding:utf-8 import torndb from util.stream_config_client import load as conf_load from utils import logger from util.sql_expr import exec_sql from util.redis.redis_client import Redis from util.mq_packs.uni_pack import shortcut_mq group = dict(conf_load('mysql.ini', 'mq.ini')) mysql_db = torndb.Connection(**group.get('mysql.ini').get_fields('cms')) mq_conf = group.get('mq.ini') uni_mq = Redis(mq_conf.get('_dispatch', 'url')) def _re_notify(pk, packet): """ 重新投递 :param pk: 主键 :param packet: """ #非mysql频道的投递 _non_ms = packet.get('_non_mysql') if isinstance(_non_ms, dict): yield shortcut_mq(_non_ms.get('mqc'), _non_ms.get('mqp')) #一次性提交多个外键任务 for k, is_ms in packet.iteritems(): if not k.startswith('_mysql'): continue if not is_ms: continue
#coding:utf-8 from utils import logger from datetime import datetime from langs import date_langs, _mcc_map, time_langs, DEFAULT_LANG from util.oem_account_key import beiqi_keys, oem_accounts from util.redis.redis_client import Redis from util.stream_config_client import load as conf_load from util.sso.dev_active import get_dev_imeiimsi_etc from util.convert import is_num, pretty_unit dev_filter = Redis( dict(conf_load('redis.ini')).get('redis.ini').get('dev_filter', 'url')) CHINA_AREA = {'chs', 'cht'} def resolve_lang(mcc=None, api_key=None, pid=None): """ 多语言翻译策略: 1. 设备mcc 2. 无mcc的设备,以帐号api_key优先 :param mcc: :param api_key: :param pid: """ if mcc is not None: return _mcc_map.get(mcc, DEFAULT_LANG) if api_key is not None: if api_key in beiqi_keys: return DEFAULT_LANG d = oem_accounts.get(api_key) if d is not None:
from utils import logger from util.convert import resolve_redis_url from tornado.process import fork_processes import msgpack from tornado.ioloop import IOLoop from tornado.concurrent import TracebackFuture, Future from tornado.options import options from setproctitle import setproctitle from util.stream_config_client import load as conf_load from util.load import import_object from util.redis.redis_client import Redis as AsyncRedis from tornado.gen import coroutine from util.convert import parse_ip_port from util.internal_forward.gen_internal_client import GeneralInternalClient redis_conf = dict(conf_load('redis.ini')).get('redis.ini') leveldb_conf = dict(conf_load('leveldb.ini')).get('leveldb.ini') @coroutine def consume_mq(): """ 执行单个任务 :return: """ resp = yield watch_redis.send_cmd('blpop', 0, watch_channel, active_trans=False) if resp is None: return