每x次制作一个任务

时间:2013-01-25 15:29:55

标签: java

我使用附加代码每隔5分钟向我的数据库发送一些信息,其中一些信息是时间戳。 当我查看我的数据库时,我看到6分钟差异甚至7分的记录,为什么会这样?有些人告诉我,我的任务需要很长时间。

无论如何,我的问题是如何强制我的代码每隔5分钟将信息发送到数据库。

*重要的是我必须说我对这个任务有条件,这意味着有时它不会做任何事情所以记录之间的差异应该是五的倍数。

this.timer.schedule(new Send(), new Date(), TEN_SECONDS*6*5);

class Send extends TimerTask
{
    public void run()
    {
        if(location!=null)
        {
            if (mGeocoderAvailable) 
                address = reverseGeocode(LocationService.this.location);
            if(address != "" && !address.equals(lastAddress))
            {
                lastAddress = address;
                new SendLocation(LocationService.this.id,address);
            }
        }
    }
}

SendLocation主体是这样的:

public SendLocation(int id,String address)
{
    // taking care the parameters
    this.start();
}
public void run() 
{ 
    //connect to db
    //send location to db
    this.destroy();
}

1 个答案:

答案 0 :(得分:0)

时间安排在SendLocation线程内,而不是发送任务。