在工作中经常会遇到要向很多人发送不同的信息的情况。例如下面这个场景:统计表staff_order_stat中存放了每个员工每天处理的订单数量信息。业务要求每天将这些信息点对点发给员工,以便让员工了解自己的业绩。表格格式像下面这样:
这个任务明显不可能手工完成。因此我们利用EasySQLMAIL的“循环任务”来实现这个分发功能。下面是实现该功能的详细步骤。
1、所需软件为EasySQLMAIL1.0.1208以上版本。可在www.easysqlmail.com下载。
2、下载安装好EasySQLMAIL后,在EasySQLMAIL中配置数据源,并将员工的邮件地址添加到EasySQLMAIL的地址薄中。具体方法可以访问http://www.easysqlmail.com/manual/index.html?page=8.htm(EasySQLMAIL地址薄管理)和http://www.easysqlmail.com/manual/index.html?page=7.htm(EasySQLMAIL数据源管理)
3、配置数据发布任务。信息分发的任务需要注意几点,一是要创建“收件人邮件地址”、“员工ID“变量,另外在选择收件人时需要选择变量“收件人邮件地址”。
(1)在任务中创建变量。后续执行任务时,将根据员工的信息动态改变这两个变量的值,实现每个员工的推送信息查询。
(2)选择变量“收件人邮件地址”作为任务的收件人。
(3)编写查询语句时,将变量“员工ID”嵌入到SQL语句中,“员工ID”的值会在运行时动态改变:
(4)制作一个员工信息表,表中包含员工ID和对应的员工的邮件地址。也可以把这个表放到数据库中的表里。
(5)在任务选项中启用“按指定条件循环执行任务”选项,并把制作好的员工信息表上传到系统。
(6)上传完成后,系统会在下方的列表中列出表格中的字段,需要在列表里把表格的字段与任务的变量建立关联,后续执行任务时EasySQLMAIL会将表格的字段的值作为对应变量的值传递给任务。
(7)设置任务的执行计划,这里设置为每天早上8点运行一次。
上面的设置完成后,保存任务。这个任务会在每天早上8点运行一次,并查询列表中的每个员工的订单统计信息分别推送给员工。
(8)执行速度优化:默认情况下EasySQLMAIL是串行执行任务的,也就是多个子任务会排队运行,这样发送速度比较慢。我们可以选择任务选项中的“新老任务实例并行运行”并为任务指定一个任务容器运行,这样可以大大提高循环任务的运行速度。
这样就可以实现定时点对点信息分发了。机器能做的事就让机器去做。