|
@@ -189,13 +189,15 @@ public class XxlJobServiceImpl implements XxlJobService {
|
189
|
189
|
return new ReturnT<String>(ReturnT.FAIL_CODE, (I18nUtil.getString("jobinfo_field_id")+I18nUtil.getString("system_not_found")) );
|
190
|
190
|
}
|
191
|
191
|
|
192
|
|
- // next trigger time
|
|
192
|
+ // next trigger time (10s后生效,避开预读周期)
|
193
|
193
|
long nextTriggerTime = 0;
|
194
|
|
- try {
|
195
|
|
- nextTriggerTime = new CronExpression(jobInfo.getJobCron()).getNextValidTimeAfter(new Date()).getTime();
|
196
|
|
- } catch (ParseException e) {
|
197
|
|
- logger.error(e.getMessage(), e);
|
198
|
|
- return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_unvalid")+" | "+ e.getMessage());
|
|
194
|
+ if (exists_jobInfo.getTriggerStatus() == 1) {
|
|
195
|
+ try {
|
|
196
|
+ nextTriggerTime = new CronExpression(jobInfo.getJobCron()).getNextValidTimeAfter(new Date(System.currentTimeMillis() + 10000)).getTime();
|
|
197
|
+ } catch (ParseException e) {
|
|
198
|
+ logger.error(e.getMessage(), e);
|
|
199
|
+ return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_unvalid")+" | "+ e.getMessage());
|
|
200
|
+ }
|
199
|
201
|
}
|
200
|
202
|
|
201
|
203
|
exists_jobInfo.setJobGroup(jobInfo.getJobGroup());
|
|
@@ -234,10 +236,10 @@ public class XxlJobServiceImpl implements XxlJobService {
|
234
|
236
|
public ReturnT<String> start(int id) {
|
235
|
237
|
XxlJobInfo xxlJobInfo = xxlJobInfoDao.loadById(id);
|
236
|
238
|
|
237
|
|
- // next trigger time
|
|
239
|
+ // next trigger time (10s后生效,避开预读周期)
|
238
|
240
|
long nextTriggerTime = 0;
|
239
|
241
|
try {
|
240
|
|
- nextTriggerTime = new CronExpression(xxlJobInfo.getJobCron()).getNextValidTimeAfter(new Date()).getTime();
|
|
242
|
+ nextTriggerTime = new CronExpression(xxlJobInfo.getJobCron()).getNextValidTimeAfter(new Date(System.currentTimeMillis() + 10000)).getTime();
|
241
|
243
|
} catch (ParseException e) {
|
242
|
244
|
logger.error(e.getMessage(), e);
|
243
|
245
|
return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_unvalid")+" | "+ e.getMessage());
|
|
@@ -255,18 +257,9 @@ public class XxlJobServiceImpl implements XxlJobService {
|
255
|
257
|
public ReturnT<String> stop(int id) {
|
256
|
258
|
XxlJobInfo xxlJobInfo = xxlJobInfoDao.loadById(id);
|
257
|
259
|
|
258
|
|
- // next trigger time
|
259
|
|
- long nextTriggerTime = 0;
|
260
|
|
- try {
|
261
|
|
- nextTriggerTime = new CronExpression(xxlJobInfo.getJobCron()).getNextValidTimeAfter(new Date()).getTime();
|
262
|
|
- } catch (ParseException e) {
|
263
|
|
- logger.error(e.getMessage(), e);
|
264
|
|
- return new ReturnT<String>(ReturnT.FAIL_CODE, I18nUtil.getString("jobinfo_field_cron_unvalid")+" | "+ e.getMessage());
|
265
|
|
- }
|
266
|
|
-
|
267
|
260
|
xxlJobInfo.setTriggerStatus(0);
|
268
|
261
|
xxlJobInfo.setTriggerLastTime(0);
|
269
|
|
- xxlJobInfo.setTriggerNextTime(nextTriggerTime);
|
|
262
|
+ xxlJobInfo.setTriggerNextTime(0);
|
270
|
263
|
|
271
|
264
|
xxlJobInfoDao.update(xxlJobInfo);
|
272
|
265
|
return ReturnT.SUCCESS;
|