脚本规范和建议

建议一:脚本的传参

不建议写死参数,尽量传递参数而不是修改代码。可以定义一个方法,以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定时脚本

 

posted @ 2018-05-18 12:05  口头猿  阅读(257)  评论(0编辑  收藏  举报