tsdb import 相关
今天一直在做opentsdb 大量导入数据的工作。 中间遇到了一些值得记录的问题, 这里随手记一下 明天好好整理
1. 多进程logger
python的logging模块不支持多进程,但我们可以用syslog模块 把进程写给linux/unix的syslog服务。
syslog 有local 0 - 7 8个通道。 把一个通道配置到你的日志文件 然后写入即可
2. 多进程
apply_async 这个函数有点奇怪。下面的代码df如果是string就可以。如果不是string, 那么子进程好像不会运行。。
#!/usr/bin/python __author__ = 'mingwli' import syslog import multiprocessing from multiprocessing import Pool import pydevd syslog.openlog('file: %s' % "My file", 0, syslog.LOG_LOCAL0) def write_log(f): syslog.syslog('Log msg: %s' % 'test msg') pool = Pool(processes=20) result = [] mylist = range(0, 20) for df in mylist: result.append(pool.apply_async(write_log, (str(df)))) pool.close() pool.join() print "all done"
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步