Load the queue in order of global priority
[?]
Aug 11, 2015, 12:14 AM
ZK76B5ZZCEOJQUDOVKDZPE6IN2YIXQONFUIJ633OAXNC73OG3YSACDependencies
- [2]
WE5Q2NVIAllow build to be bumped to the front of the queue via the web interface - [3]
T5BIOVJEAdd support for tracking custom metrics - [4]
46ADBTMQStart steps in order of ascending build ID - [5]
IK2UBDAURevive jobset scheduling - [6]
MHVIT4JYSplit hydra-queue-runner.cc more
Change contents
- replacement in src/hydra-queue-runner/queue-monitor.cc at line 62
std::multimap<Path, Build::ptr> newBuilds;std::vector<BuildID> newIDs;std::map<BuildID, Build::ptr> newBuildsByID;std::multimap<Path, BuildID> newBuildsByPath; - replacement in src/hydra-queue-runner/queue-monitor.cc at line 69
auto res = txn.parameterized("select id, project, jobset, job, drvPath, maxsilent, timeout, timestamp, globalPriority from Builds where id > $1 and finished = 0 order by id")(lastBuildId).exec();auto res = txn.parameterized("select id, project, jobset, job, drvPath, maxsilent, timeout, timestamp, globalPriority from Builds ""where id > $1 and finished = 0 order by globalPriority desc, id")(lastBuildId).exec(); - replacement in src/hydra-queue-runner/queue-monitor.cc at line 93
newBuilds.emplace(std::make_pair(build->drvPath, build));newIDs.push_back(id);newBuildsByID[id] = build;newBuildsByPath.emplace(std::make_pair(build->drvPath, id)); - edit in src/hydra-queue-runner/queue-monitor.cc at line 106
newBuildsByID.erase(build->id); - replacement in src/hydra-queue-runner/queue-monitor.cc at line 135
while (true) {auto i = newBuilds.find(r->drvPath);if (i == newBuilds.end()) break;Build::ptr b = i->second;newBuilds.erase(i);createBuild(b);}auto i = newBuildsByPath.find(r->drvPath);if (i == newBuildsByPath.end()) continue;auto j = newBuildsByID.find(i->second);if (j == newBuildsByID.end()) continue;createBuild(j->second); - replacement in src/hydra-queue-runner/queue-monitor.cc at line 228
while (!newBuilds.empty()) {auto build = newBuilds.begin()->second;newBuilds.erase(newBuilds.begin());for (auto id : newIDs) {auto i = newBuildsByID.find(id);if (i == newBuildsByID.end()) continue;auto build = i->second;