工作点滴/

Huginn监控的时间进行更精确的控制[转载]

在之前的文章(上手huginn的第一篇教程:一个定时监控黄金价格的rss)中,我们可以通过简单的配置和几行代码,实现定时抓取黄金价格并输出为RSS,从而方便我们通过阅读器查看。
在教程中,我们设置了每5小时抓取一次数据:
35126-yhtkscs4yl.png

这种策略适合于全天24小时更新的数据,例如,监控比特币的价格:
90910-wl7clj54fvs.png

但对于非24小时更新的数据,就不是那么好用了,最典型的就是A股的价格监控:
55541-w90g70i7sl.png

因为A股每天的交易时间只有9:30-11:30,13:00-15:00短短的四个小时,因此,对于监控时间,无论是设置成每5个小时还是每1个小时,都会抓取到大量休市时间的数据,导致rss信息流被大量无意义的信息污染。
那么,有没有办法能使huginn对抓取时间进行更精确的控制呢?
答案是有的,就是今天我们要介绍的huginn中的定时任务代理——SchedulerAgent。
58991-qmzdr35bndl.png

SchedulerAgent的设置非常简单,只需要两步:
首先,在control targets中填入需要被控制的Agent即可,在我们的例子中,就是“抓取股票价格”这样一个post agent。
然后,在Options中,我们需要填入两个参数:

一是action:定义定时任务的行为,包含三种选项:
run: 在这些时刻执行目标agent
disable: 目标agent在定时时间起不能执行
enable: 目标agent在定时时间起可以执行
在我们的例子中,我们需要指定时间执行任务,因此选择run就可以。

二是schedule:以crone表达式的形式定义定时时间,以空格分隔,分别表示分钟、小时、日、月、星期,例如在我们的例子中,我们配置成:
0 10,13,15 * * 1-5 Asia/Shanghai
表示,在每周一至周五的10点、13点、15点三个时间,分别执行定时任务。
最后的Asia/Shanghai表示时区,因为huginn默认采用的标准时区,查看A股的话需要配置成北京时间,才能准确运行。
crone表达式非常灵活,可以衍生出很多复杂的操作,具体使用方法可以在网上查找crone相关的教程。
这样,我们就可以只抓取A股开市期间的股票数据,避免了无用数据对rss信息流的污染。

留下一条评论

暂无评论