Spring Batch:将另一个表映射到批处理作业

时间:2018-01-31 21:47:15

标签: java spring spring-batch

我现在想知道我是否创造了大量的样板。 Spring Batch似乎都是关于工作和大数据工作的。我创建了自己的作业数据库表,并使用@Scheduled注释进行处理,所以基本上只是另一个线程上的进程。该作业从数据库表中读取行,对其进行处理,然后在同一个数据库表中写入一些内容。

阅读Spring Batch似乎可以做到这一点,但我想知道它是否真的可以。我的处理基本如下:

=> Read 20 recipients attached to job from db (where not sent)
=> Iterate over them
=> Send each the message attached to the job
=> Mark each recipient as sent
=> Save recipients back to database

现在我读到Spring Batch可以从数据库读取然后用它得到的东西做一些事情,但我的主要抱怨是作业。由于一次可能有多个作业,每个作业只能执行一组特定的收件人。此外,处理涉及也特定于作业的消息。关系看起来像这样:

Job -> hasMany -> Recipient -> belongsTo -> Job
Job -> hasOne -> Message -> belongsTo -> Job

由于Spring Batch不公开实际作业并且只是将元数据保存在某处,我觉得特别难以将作业分配给作业,尤其是在手动添加收件人和消息后手动调用作业时。

那里有一个很好的Spring Batch教程吗?他们似乎都使用相同的平面文件示例或他们从数据库读取并写入文件的示例。

0 个答案:

没有答案