最近挺火的一个网站ifttt,今天终于激活了,进去看了一下,确实很棒,但做为一个无证程序员,对新的技术新的创意总是充满了好奇,所以发个帖跟大家讨论一下这个网站的实现方法,主要在以下几点:
1、这个网站用web的方式实现了一个触发器,这个是如何做到的呢?
个人观点:通过使用后发现这个“触发器”不是实时的,最小时间间隔是15分钟,这个可能是考虑到服务器负载的原因吧。每个task当然是记录在了数据库,实现触发器功能主要的难点在于如何来触发,这个从数据库和web服务器两方面来说。
在数据库方面一般都有计划任务功能,用这个可以做到定时去检查数据库进行触发,但难点在于调用执行task的程序,这点应该是比较难的。可能的解决方案是写个系统服务来执行task,然后在计划任务中调用这个服务。
在web服务器方面可用定时器或另开一个线程,这个线程定时检查数据库中的task,然后执行。
2、如何确保准时?
如果有10W个task要在某个时间点上执行,即使用上面提到的几种方法实现了触发器,现在大部分API中没有定时执行功能,如何保证每个task准时执行呢,这个目前没任务思路。
欢迎大家对上面两个问题给出自己的看法!
largeQ