论文首页哲学论文经济论文法学论文教育论文文学论文历史论文理学论文工学论文医学论文管理论文艺术论文 |
调度:准备执行任务,将其置为“就绪状态”,随时可以分派执行,由于同步机制的限制,系统在同一时刻只能执行一个任务。
分派:选择任务并执行,进入执行状态。
出现异常:任务在执行过程中,发生可恢复或者不可恢复的异常,中止执行,将其置为“失败”状态。
重置:解决异常后,重置失败的任务,等待重新执行。
执行完成:任务执行过程中没有出现异常情况,顺利执行完毕。
任务管理模块包括的功能主要有任务初始化、任务调度和任务执行。
任务初始化主要是创建任务,用户根据本次审计目标的要求来建立一个 ETL 任务,包含任务信息和任务的创建信息。任务信息是指选择符合本次审计目标的业务任务,基础任务不用选择,因为是必选的,在执行ETL 的时候,会首先执行基础任务。
任务调度模块是贯穿整个数据集市形成过程的,在此过程中监听事件,并能够根据事件启用相应的任务。在此模块启动后,根据任务号顺序执行,关于任务的任务号确定问题,本系统中采用一个较为简单的原则来解决:在任务创建的同时已经确定了任务的优先级,结合任务的执行时间,先按照执行时间先后确定任务号,如果执行时间相同,再按照任务的重要性确定任务号,如果重要性也相同,则对二者(或者更多)随机确定任务号。如果任务B的任务号是排在任务A 的任务号的下一位,则成任务B 是任务A 的后续任务。顺序执行任务的同时要监听触发事件,此模块监听的事件可分为主要有两种:①任务结束。在一个任务执行时,任务调度模块会实时监控这个任务的状态,当一个任务执行完毕后,将此任务的状态置为完成,并将其后序任务状态置为准备。而当错误发生后,首先将其状态置为异常,然后调用异常处理模块,处理好现场,并将该子任务的状态置为“失败”。并将错误记录到日志中,顺序执行下一个任务。②时间到达。对于一些任务,用户希望它们定时执行,所以任务调度模块必须实时比较它们的启动时间和系统时间,一旦二者一致,就执行此任务。任务调度模块一直执行到任务完成后关闭系统时才随系统一起停止运行。
任务执行即是开始 ETL 处理过程。任务的执行方式分为两种:手动和定时,手动方式随时可以执行,定时方式则是在设定的时间自动启动。具有管理员权限的用户随时可以执行任务。定时任务则要在系统内设置定时执行任务的时间,可以根据任务需求设置几种频率:
每月,每周,每天等。每天到零点时刻,系统就会添加所有在这一天内要执行的定时任务到队列中,然后计算出到达下一个设定的执行时间的时间差,让线程休眠相同时间,醒来后再执行。同一个任务可以多次重复执行。如果在执行任务过程中新添加了一个任务,系统会根据此任务的任务号插入到队列中。每完成一个任务,系统就从执行队列中选取一个优先级最高的执行。
4.1.3 异常处理 (科教范文网 lw.AsEac.com编辑整理)
任何系统都会出现异常情况,所以异常处理模块必不可少。在本模型中,异常处理模块主要应对任务执行异常情况,比如数据出现乱码,从而致使数据转化任务出错;正在执行抽取或导入任务时,网络断开,等等。
在出现错误后,本模块会将该任务的状态置为“异常”,然后调用相应的处理程序。对于一些任务执行过程中发生的错误,只需要重新执行该任务便可,比如网络或电源断开;而对于一些错误的处理则比较麻烦,比如抽取数据的时候一个表发生错误,并且ETL 过程已经执行完毕后发现的,这种情况下,重新执行一遍ETL 过程势必要花费大量的时间,无论是用户还是数据源系统都是不允许的,因此我们可以利用前面所述基础任务和业务任务的划分,根据任务号单独执行出错的任务,这种做法就大大节省了时间,从而提高了错误恢复的效率。
4.1.4 系统日志
系统日志模块也是 ETL 过程中必不可少的一个模块。它的作用在于记录每一个任务完成情况,以及系统启动时间和完成时间等详细信息,以便技术人员在查看以往的记录的时候有据可依,并且也可以从中查看一些异常情况,分析问题,解决系统无法自动解决的问题。