首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 数据库开发 >

使用Kettle api 停止运行的Job

2012-12-15 
求助:使用Kettle api 停止运行的Job最近我们项目需要使用Kettle,本人成功的将其集成到项目中,但是中途遇到

求助:使用Kettle api 停止运行的Job
最近我们项目需要使用Kettle,本人成功的将其集成到项目中,但是中途遇到一个很郁闷的问题,就是不知道如何使用api停止正在运行的Job,我使用的是kettle3.2版本。下面是我调用并执行资源库中的Job的代码:


public void executeJobToResorce() throws KettleException {
                //初始化
                EnvUtil.environmentInit();
                JobEntryLoader.init();
                StepLoader.init();
                //日志
                LogWriter log=LogWriter.getInstance("KettleTest.log", true, LogWriter.LOG_LEVEL_DETAILED);
                //用户
                UserInfo userInfo=new UserInfo();
                userInfo.setLogin("admin");
                userInfo.setName("admin");
                //数据库连接元对象
                /**
                 * Construct a new database connections.  Note that not all these parameters are not always mandatory.
                 * 
                 * @param name The database name
                 * @param type The type of database
                 * @param access The type of database access
                 * @param host The hostname or IP address
                 * @param db The database name
                 * @param port The port on which the database listens.
                 * @param user The username
                 * @param pass The password
                 */
                DatabaseMeta connection=new DatabaseMeta("10.207.6.109-sspa", "Oracle", "Native", "10.207.6.109", "orcl", "1521", "sspa", "sspa");
                //资源库元对象
                RepositoryMeta repinfo=new RepositoryMeta();


                repinfo.setConnection(connection);
                //资源库
                Repository rep=new Repository(log, repinfo, userInfo);
                //连接资源库
                rep.connect("");
                //资源库目录对象
                RepositoryDirectory dir=new RepositoryDirectory(rep);
                //步骤加载对象
                StepLoader steploader=StepLoader.getInstance();
                //Job元对象
                JobMeta jobMeta=new JobMeta(log, rep,"ceshiJob", dir);
                //Job
                Job job=new Job(log, steploader, rep, jobMeta);
                //执行Job
                job.execute();
                //job.run();
                //System.out.println("--------------------------"+job.getStatus());
                //等待Job执行结束
                job.waitUntilFinished();
        }


现在不知道如何停止这个Job,希望有知道的人士帮帮忙。首先声明,我试过使用job.stopAll()方法,但是发现无法停止Job。
[解决办法]
问题已经解决了,原因并非Kettle造成的,而是由于自己在停止时创建了一个新的Job,而不是传入之前执行的Job,所以就没有将任务停止。等过些时间,有空啦将代码传上来。以供童鞋们学习。

热点排行