用纯JDK1.4写了一段纯JAVA的程序(BATCH)打包成postData.bat在TASK LIST中指定每分钟运行一次
程序在第一次运行没有终止的情况 第二次启动会产生重复数据
如何摆脱这种情况(等待或者终止 都可以接受)尝试了下 把程序入口定义成 synchronized
(main函数 调用 postData() 将 postData()定义成 synchronized)但是DEBUG的时候 连续启动2次后 postData()还是可以被重复访问
是解决的思路错了吗JavaBatch

解决方案 »

  1.   

    做一个外部文件,bat中队这个文件进行操作,当bat开始和结束的时候操作文件中的flg?
      

  2.   


    写文件或者写DB 确实是可以解决这个问题(实际也是这么做的)
    多线程的情况下 是可以用synchronized搞定的
    batch的话难道没有类似技术面解决的办法了吗
      

  3.   

    这是两个java进程啊,java有个FileLock类,这个锁是进程间,可以使用。
      

  4.   


    看了下API FileLock是个文件锁
    不能起到想要的效果最后通过 DB设立FLAG的方法对应了
    唯一担心的是 程序中途崩溃的情况下
    这个FLAG一直是立着的 接下来就没有办法自动继续运行了
      

  5.   


    看了下API FileLock是个文件锁
    不能起到想要的效果最后通过 DB设立FLAG的方法对应了
    唯一担心的是 程序中途崩溃的情况下
    这个FLAG一直是立着的 接下来就没有办法自动继续运行了
    如果你会用,是有效果的