zoukankan      html  css  js  c++  java
  • 脚本规范和建议

    建议一:脚本的传参

    不建议写死参数,尽量传递参数而不是修改代码。可以定义一个方法,以python为例子:

    import argparse
    def parse_cmd():
    parser = argparse.ArgumentParser()
    parser.add_argument('-s', '--stage', required=True, type=str, choices=['test', 'product'])
    parser.add_argument('-l', '--log', type=str, help='debug log file')
    parser.add_argument('-i', '--input', required=True, type=str, help='input file pathname')
    return parser.parse_args()

    if __name__ == '__main__':
    args = parse_cmd() # 获得命令行参数(环境和日志)
    stage = args.stage
    file_path = args.input

    建议二:脚本低耦合,能独立运行,不依赖框架

    建议三:做好日志

    file_handler = logging.FileHandler(path)  # 日志路径
    logger = logging.getLogger('LoggerName')
    formatter = logging.Formatter('%(asctime)s %(levelname)-8s:%(message)s')
    file_handler.setFormatter(formatter)
    logger.addHandler(file_handler)

    def function1(logger):
    try:
    ......
    except:
            logger.error('方法function1发生错误:%s' % e)

    建议四:大批量写redis,比如100万条,用pipeline

    rcli_0 = redis.StrictRedis(host=....)
    pipe_0 = rcli_0.pipeline()
    pipe_0.set(key1, value)
    pipe_0.set(key2, value)
    pipe_0.set(key3, value)
    pipe_0.execute()

    建议五:crontab定时脚本

  • 相关阅读:
    babel-loader的原理
    js弱类型转换的知识点
    个人说明
    嗯三月的小计划
    bzoj2326 [HNOI2011]数学作业
    bzoj2654 tree
    bzoj1018[SHOI2008]堵塞的交通traffic
    bzoj1937[Shoi2004]Mst 最小生成树
    一般图最大匹配-带花树-带注释模板
    FFT快速傅里叶变换-递归版-带注释模板
  • 原文地址:https://www.cnblogs.com/yuzhaoblog/p/9055608.html
Copyright © 2011-2022 走看看