用纯JDK1.4写了一段纯JAVA的程序(BATCH)打包成postData.bat在TASK LIST中指定每分钟运行一次
程序在第一次运行没有终止的情况 第二次启动会产生重复数据
如何摆脱这种情况(等待或者终止 都可以接受)尝试了下 把程序入口定义成 synchronized
(main函数 调用 postData() 将 postData()定义成 synchronized)但是DEBUG的时候 连续启动2次后 postData()还是可以被重复访问
是解决的思路错了吗JavaBatch
程序在第一次运行没有终止的情况 第二次启动会产生重复数据
如何摆脱这种情况(等待或者终止 都可以接受)尝试了下 把程序入口定义成 synchronized
(main函数 调用 postData() 将 postData()定义成 synchronized)但是DEBUG的时候 连续启动2次后 postData()还是可以被重复访问
是解决的思路错了吗JavaBatch
写文件或者写DB 确实是可以解决这个问题(实际也是这么做的)
多线程的情况下 是可以用synchronized搞定的
batch的话难道没有类似技术面解决的办法了吗
看了下API FileLock是个文件锁
不能起到想要的效果最后通过 DB设立FLAG的方法对应了
唯一担心的是 程序中途崩溃的情况下
这个FLAG一直是立着的 接下来就没有办法自动继续运行了
看了下API FileLock是个文件锁
不能起到想要的效果最后通过 DB设立FLAG的方法对应了
唯一担心的是 程序中途崩溃的情况下
这个FLAG一直是立着的 接下来就没有办法自动继续运行了
如果你会用,是有效果的