This commit is contained in:
parent
c5316b4dda
commit
94046f8692
2 changed files with 13 additions and 5 deletions
|
@ -436,6 +436,9 @@ class SchedulerPart(ConfModel):
|
||||||
"mower.solvers.sss.SSSSolver": True,
|
"mower.solvers.sss.SSSSolver": True,
|
||||||
"mower.solvers.rogue.RogueSolver": True,
|
"mower.solvers.rogue.RogueSolver": True,
|
||||||
}
|
}
|
||||||
|
"启用任务"
|
||||||
|
postpone_non_riic: bool = True
|
||||||
|
"将基建以外的任务推迟到基建任务后执行"
|
||||||
|
|
||||||
|
|
||||||
class SKLandPart(ConfModel):
|
class SKLandPart(ConfModel):
|
||||||
|
|
|
@ -175,15 +175,13 @@ class Scheduler:
|
||||||
insort(self.time_queue, task)
|
insort(self.time_queue, task)
|
||||||
|
|
||||||
def update_queue(self):
|
def update_queue(self):
|
||||||
tasks = self.priority_queue
|
tasks, self.priority_queue = self.priority_queue, []
|
||||||
self.priority_queue = []
|
|
||||||
for task in tasks:
|
for task in tasks:
|
||||||
if config.conf.task[task.solver]:
|
if config.conf.task[task.solver]:
|
||||||
self.priority_queue.append(task)
|
self.priority_queue.append(task)
|
||||||
else:
|
else:
|
||||||
insort(self.time_queue, task)
|
insort(self.time_queue, task)
|
||||||
tasks = self.time_queue
|
tasks, self.time_queue = self.time_queue, []
|
||||||
self.time_queue = []
|
|
||||||
for task in tasks:
|
for task in tasks:
|
||||||
if config.conf.task[task.solver] and task.next_execution() <= now:
|
if config.conf.task[task.solver] and task.next_execution() <= now:
|
||||||
insort(self.priority_queue, task)
|
insort(self.priority_queue, task)
|
||||||
|
@ -258,7 +256,14 @@ class Scheduler:
|
||||||
insort(self.time_queue, next_task)
|
insort(self.time_queue, next_task)
|
||||||
else:
|
else:
|
||||||
# 如果没有需要立即执行的任务,休息
|
# 如果没有需要立即执行的任务,休息
|
||||||
next_time = next(self.waiting_tasks).next_execution()
|
for next_task in self.waiting_tasks:
|
||||||
|
if (
|
||||||
|
not config.conf.postpone_non_riic
|
||||||
|
or next_task.solver
|
||||||
|
== "mower.solvers.base_manager.BaseManager"
|
||||||
|
):
|
||||||
|
break
|
||||||
|
next_time = next_task.next_execution()
|
||||||
sleep_time = next_time - now
|
sleep_time = next_time - now
|
||||||
sleep_time_display = format_time(sleep_time.total_seconds())
|
sleep_time_display = format_time(sleep_time.total_seconds())
|
||||||
if sleep_time > timedelta(minutes=3):
|
if sleep_time > timedelta(minutes=3):
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue