在java中,线程会将数据写入数据库表,它会有一个像Last_modified_timestamp这样的列。然后另一个后台线程将扫描表以查看那里的新行。扫描仪将选择那些新添加的并做一些逻辑。
如何编写这些系统?
谢谢
答案 0 :(得分:1)
后台扫描程序线程可以使用计时器每隔X秒检查一次表的新插入,然后你也可以使用myThread.setDeamon(true)使这个线程成为守护进程,以便以较低的优先级运行。除非您需要此线程来尽快检查新插入。
扫描仪需要“last_timestamp_proceed”属性,每次扫描仪选择新添加的行时,您都会更新该属性。 您的后台扫描程序线程只需要使用WHERE子句对表执行查询,以获取“last_timestamp_proceed”属性值后面带有“last_modified_timestamp”值的行。
要注意的一点是你想在扫描程序线程中运行的逻辑,也许你的数据库中的记录会在扫描程序线程提取它们并做一些逻辑时被更改,你可能需要在这之前锁定那些记录。扫描程序线程做一些逻辑,然后一旦逻辑完成,解锁行。