Windows下Kettle定时任务执行并发送错误信息邮件

本文详细介绍了在Windows环境下如何使用Kettle进行定时任务的设置,并通过邮件发送错误日志。从JDK安装配置到Kettle作业创建,再到定时任务与邮件通知的实现,提供了完整的步骤指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Windows下Kettle定时任务执行并发送错误信息邮件

1.首先安装JDK
2.配置JDK环境
3.下载并解压PDI(kettle)

目前我用的是版本V7的,可以直接百度搜索下载社区版,企业版收费,社区版免费

下载地址:https://sourceforge.net/projects/pentaho/files/Data%20Integration/

648026-20181213173807157-1599597017.png

4.打开解压文件夹kettle找到spoon.bat,双击打开
5.新建作业

点击左上角文件=>新建=>作业

如下图:

648026-20181213173818717-1888522255.png

6.然后开始建立作业

流程如下图,直接拉图标就行

648026-20181213173826366-277715887.png

7.编辑 “转换”

右键编辑转换选择Open Referenced ObjectTransformation然后新建一个转换

648026-20181213173836602-2096107460.png

8.新建的转换流程和配置如下

我做的是表的数据同步到另一个表中,只是做了简单的处理,没有做冲突验证
648026-20181213173849920-68419945.png
648026-20181213173856334-147021375.png
648026-20181213173900237-1063871786.png

然后选择点击获取SQL查询语句

可以预览查看数据

9.输出表配置

配置输出表的数据库连接新建数据库连接然后选择目标表

648026-20181213173936687-777676336.png

其余的三个都是不同的表而已

10.设置转换日志

双击转换然后设置日志信息

648026-20181213173945601-381841793.png

其他的转换也同样设置,有几个转换就设置几个错误日志发送邮箱。日志级别最好选择详情日志

11.邮箱设置

648026-20181213173955584-1724129336.png

648026-20181213174001665-1982100473.png

648026-20181213174006430-999258315.png

648026-20181213174012354-1585239541.png

其他邮箱也要这么设置。

12.编写完毕后就可以直接运行

点击右上角的运行符号跑起来后,不管成功或者失败都会发送邮件到你的邮箱。然后登录自己的邮箱就可以从邮件中直接查看错误日志了。附件中有详细的错误日志信息

648026-20181213174040673-1856905870.png

13.怎么在windows中设置定时任务

当然可以直接在START中设置定时任务的 不过不如做成脚本直接让windows帮忙运行

保存作业生成一个后缀为kjb的一个文件,然后编写一个bat脚本文件:

@echo "该脚本这么解释,先进入kitchen.bat所在目录,执行kitchen 后面为所带参数"
cd /d D:
cd D:\Kettle
kitchen /file E:\kettle_files\timing.kjb /level Basic /logfile E:\kettle_logs\timing.log
@pause

cd /d D: 意思是强制进入D盘

cd D:\Kettle 意思是进入到Kettle的kitchen.bat所在目录中

kitchen /file E:\kettle_files\timing.kjb /level Basic /logfile E:\kettle_logs\timing.log 是使用kitchen的方式执行timing.kjb的作业,并在E盘的kettle_logs下生成执行的日志

14.返回桌面,右键此电脑,进入管理,右键-任务计划程序-新建基本任务

定时任务参考地址:https://blog.youkuaiyun.com/huiweizuotiandeni/article/details/54382639

648026-20181213174055284-813180936.png

648026-20181213174101069-392555741.png

648026-20181213174107497-479670161.png

648026-20181213174116991-83416622.png

### 如何配置Pentaho Kettle定时任务执行 #### 使用 Spoon 创建带参数的定时任务将其部署到服务器后台运行 为了使Kettle的任务能够在服务器上作为后台进程定期自动运行,可以采用如下方法: 对于希望在特定时间触发作业的情况,在本地利用Spoon完成转换和作业的设计之后,需进一步考虑如何让这些流程按照预定的时间表启动。一种常见的方式是借助操作系统的调度功能——例如Linux下的`cron`服务或Windows的任务计划程序。 当准备就绪后,可编写批处理(.bat)文件来调用Kitchen.bat(用于执行Job)或者Pan.bat(用于执行Transformation),通过命令行传递必要的参数,如作业路径、日志级别等信息[^4]。 ```batch @echo off if "%1" == "h" goto begin mshta vbscript:createobject("wscript.shell").run("%~nx0 h",0)(window.close)&&exit :begin :: 设置工作目录至Kitchen.bat所在的磁盘分区及具体位置 cd D:\software\Kettle7 :: 调用kitchen执行指定job将输出追加记录到log文件中 kitchen /file:D:\KettleProject\job2.kjb /level:Basic >>D:\KettleProject\test.log ``` 此脚本展示了怎样静默模式下启动一个名为`job2.kjb`的工作流实例,执行过程中的基本信息保存于`test.log`文档内。 #### 利用操作系统自带工具实现自动化调度 - **Linux**: 用户可以通过`crontab -e`指令进入个人用户的定时任务管理界面,添加新条目以安排上述`.bat`脚本或其他形式的Shell Script按周期性规律被执行。需要注意的是,如果命令字符串里包含了百分号(`%`)字符,则应该替换为两个连续的百分号(`%%`)以便正确解析[^3]。 `* * * * * sh /path/to/script.sh` - **Windows**: 对应地,在Windows平台上则应当运用“任务计划程序(Task Scheduler)”图形化界面或是PowerShell cmdlet (`Register-ScheduledTask`, `New-ScheduledTaskTrigger`, etc.) 来达到相同目的。 另外,考虑到跨平台兼容性和集中管控的需求,部分企业级方案可能会引入专门的日程管理系统(Cron Service), 或者依赖CI/CD流水线工具(Jenkins, GitLab CI)集成此类特性。 #### 参数化与环境变量支持 为了让同一个物理上的作业能够适应不同场景的应用需求,建议合理规划输入参数列表及其默认值设定;同时充分利用系统级别的环境变量机制,使得像数据库连接串这样的敏感数据不必硬编码进源码之中而是动态获取自外部配置项。这不仅有助于提高灵活性也增强了安全性[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值