问题由来
公司项目背后需要其他项目的支撑,包括爬虫爬取最新数据、Spark 对原始数据进行计算、Cassandra 存储每天的用户数据
第一个解决方案
一开始,我们自己搭建了一个简单的网页,当任务执行开始的时候调用 task.start('{task_name}')
当任务结束的时候,调用 task.end()
当任务异常的时候,调用 task.exception('some exception message...')
同时我们使用 Celery 来进行任务调度
这种工作方式,本质上是能够解决我们的问题的,但是因为任务太多,而且最关键的一点,我们没有办法知道,当 task 正常结束的时候,里面的运行就真的一切正常吗?
另外当运行任务越来越多的时候,是不是有任务没有执行? 人工查看确实也比较费劲
最后,用人肉的方式来查看密密麻麻的文字来确定所有任务都正常进行,确实也不科学!
补充解决方案: 使用图形化展示运行结果
举个实际的例子,每天我们要统计各个版本的用户数。
之前有纯数字的报表,显示比如今天 V10 有 405W, V8 有 160W 的用户。
为了能更好的效果,我们需要将其图形化的显示。 不过我们都是后端程序员,虽然懂一些前端知识,但是如果能更好的图形化显示就最好了~
这个时候,我无意中发现 pandas-highcharts 这个类库
下面是类库自动生成的图表:
而代码也并不复杂。
chart = serialize(df, kind="bar", render_to='is_cover', output_type='json', title="XXX IsCover")
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于