diff --git a/core/src/scheduler/Scheduler.cpp b/core/src/scheduler/Scheduler.cpp index 19197b4168d64b2e8aacb7cb8dbe6ade79c51d01..4b42c5ec8f1048fc209de6395ba90d65a5759f0b 100644 --- a/core/src/scheduler/Scheduler.cpp +++ b/core/src/scheduler/Scheduler.cpp @@ -97,7 +97,7 @@ void Scheduler::OnLoadCompleted(const EventPtr& event) { auto load_completed_event = std::static_pointer_cast(event); if (auto resource = event->resource_.lock()) { - resource->WakeupExecutor(); + // resource->WakeupExecutor(); auto task_table_type = load_completed_event->task_table_item_->task->label()->Type(); switch (task_table_type) { diff --git a/core/src/scheduler/action/PushTaskToNeighbour.cpp b/core/src/scheduler/action/PushTaskToNeighbour.cpp index 7fbcf77afc123a84f807f20d7f43a2e3ade58d3a..4e7dbf984fe747676b8ac1e71c6f5fbfebbb9602 100644 --- a/core/src/scheduler/action/PushTaskToNeighbour.cpp +++ b/core/src/scheduler/action/PushTaskToNeighbour.cpp @@ -209,9 +209,11 @@ Action::SpecifiedResourceLabelTaskScheduler(ResourceMgrWPtr res_mgr, ResourcePtr } else { auto next_res_name = task->path().Next(); auto next_res = res_mgr.lock()->GetResource(next_res_name); - if (event->task_table_item_->Move()) { - next_res->task_table().Put(task); - } + // if (event->task_table_item_->Move()) { + // next_res->task_table().Put(task); + // } + event->task_table_item_->Move(); + next_res->task_table().Put(task); } } diff --git a/core/src/scheduler/resource/Resource.cpp b/core/src/scheduler/resource/Resource.cpp index e99ee252551ec388f77a09879b81a5939a260112..dd1557adf5721f775a782308d0ee042db138d521 100644 --- a/core/src/scheduler/resource/Resource.cpp +++ b/core/src/scheduler/resource/Resource.cpp @@ -116,15 +116,23 @@ Resource::pick_task_execute() { auto indexes = task_table_.PickToExecute(std::numeric_limits::max()); for (auto index : indexes) { // try to set one task executing, then return + // if (task_table_[index]->task->label()->Type() == TaskLabelType::SPECIFIED_RESOURCE) { + // if (task_table_[index]->task->path().Last() != name()) { + // continue; + // } + // } + // + // if (task_table_.Execute(index)) { + // return task_table_.Get(index); + // } if (task_table_[index]->task->label()->Type() == TaskLabelType::SPECIFIED_RESOURCE) { - if (task_table_[index]->task->path().Last() != name()) { - continue; + if (task_table_.Get(index)->task->path().Current() == task_table_.Get(index)->task->path().Last() && + task_table_.Get(index)->task->path().Last() == name()) { + if (task_table_.Execute(index)) { + return task_table_.Get(index); + } } } - - if (task_table_.Execute(index)) { - return task_table_.Get(index); - } // else try next } return nullptr;