我希望我的主程序在updateRecord
方法在后台运行时继续执行。 updateRecord
方法会以一定的间隔不断更新记录的到期时间。
这是我的updateRecord
方法。
public void updateRecord(LeaderRecord leader) {
LeaderRecord record = data.get(leader.getType());
synchronized (this) {
if (leader.getId().equals(record.getId()) || leader.getVersion() == record.getVersion()) {
Runnable runnable = () -> {
calendar.add(Calendar.SECOND, timeLimit);
leader.setExpiryTime(new Timestamp(calendar.getTime().getTime()));
data.put(leader.getType(), leader);
System.out.println(record.getExpiryTime());
};
ScheduledExecutorService service = Executors.newScheduledThreadPool(1);
service.scheduleAtFixedRate(runnable, 0, timeLimit, TimeUnit.SECONDS);
}
}
}
此代码在打印一次时间后停止运行。 我应该怎么做以使其在主应用程序执行时仍在后台运行? 预先谢谢你!
答案 0 :(得分:1)
使用<input
[(ngModel)]="selectedStock.ItemCode"
id="ItemCode"
placeholder="name"
class="form-control"
[attr.disabled]="!(selectedStock.ItemCode)"
name="ItemCode"
#ItemCode="ngModel"
ngModel>
以设定的时间间隔运行任务。
ErrorDocument <3-digit-code> <action>
这将使程序永远运行直到您停止它。使用
ErrorDocument 404 /404.php
停止java.util.Timer
或
Timer t = new Timer();
t.schedule(new TimerTask() { //(TimerTask task, long delay, long period)
@Override
public void run() {
updateRecord(leader);
}
}, 0, 3600000); //delay = 0, interval in milliseconds
终止应用程序。
答案 1 :(得分:1)
考虑使用计时器。它们应该是您想要的。它与您正在执行的操作相似,但是具有您要查找的所有功能。
t.cancel();
t.purge();
我希望这会有所帮助。