Skip to content

Commit

Permalink
mxqd: always assign jobs_max jobs form group to daemon if no jobs are…
Browse files Browse the repository at this point in the history
… assigned

relates to issue #51
  • Loading branch information
mariux committed May 7, 2017
1 parent 9007b4a commit b329b7a
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 4 deletions.
5 changes: 3 additions & 2 deletions mxq_job.c
Original file line number Diff line number Diff line change
Expand Up @@ -682,14 +682,15 @@ int mxq_load_job_from_group_assigned_to_daemon(struct mx_mysql *mysql, struct mx
}

int mxq_load_job_from_group_for_daemon(struct mx_mysql *mysql, struct mxq_job *job, uint64_t group_id, struct mxq_daemon *daemon,
unsigned long slots_per_job)
unsigned long slots_per_job, uint64_t jobs_max)
{
int res;
struct mxq_job *jobs_tmp = NULL;

assert(mysql);
assert(job);
assert(daemon);
assert(jobs_max);

do {
res = mxq_load_job_from_group_assigned_to_daemon(mysql, &jobs_tmp, group_id, daemon);
Expand All @@ -704,7 +705,7 @@ int mxq_load_job_from_group_for_daemon(struct mx_mysql *mysql, struct mxq_job *j
break;
}

res = mxq_assign_jobs_from_group_to_daemon(mysql, group_id, daemon, slots_per_job, 1);
res = mxq_assign_jobs_from_group_to_daemon(mysql, group_id, daemon, slots_per_job, jobs_max);
if (res < 0) {
mx_log_err(" group_id=%lu :: mxq_assign_jobs_from_group_to_daemon(): %m", group_id);
return 0;
Expand Down
2 changes: 1 addition & 1 deletion mxq_job.h
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,6 @@ int mxq_set_job_status_exited(struct mx_mysql *mysql, struct mxq_job *job);
int mxq_set_job_status_unknown(struct mx_mysql *mysql, struct mxq_job *job);
int mxq_job_set_tmpfilenames(struct mxq_group *g, struct mxq_job *j);
int mxq_load_job_from_group_assigned_to_daemon(struct mx_mysql *mysql, struct mxq_job **jobs_result, uint64_t group_id, struct mxq_daemon *daemon);
int mxq_load_job_from_group_for_daemon(struct mx_mysql *mysql, struct mxq_job *mxqjob, uint64_t group_id, struct mxq_daemon *daemon,unsigned long slots_per_job);
int mxq_load_job_from_group_for_daemon(struct mx_mysql *mysql, struct mxq_job *mxqjob, uint64_t group_id, struct mxq_daemon *daemon,unsigned long slots_per_job, uint64_t jobs_max);
int mxq_load_jobs_running_on_server(struct mx_mysql *mysql, struct mxq_job **jobs_result, struct mxq_daemon *daemon);
#endif
2 changes: 1 addition & 1 deletion mxqd.c
Original file line number Diff line number Diff line change
Expand Up @@ -1174,7 +1174,7 @@ unsigned long start_job(struct mxq_group_list *glist)
group = &glist->group;
job = &_mxqjob;

res = mxq_load_job_from_group_for_daemon(server->mysql, job, group->group_id, daemon, glist->slots_per_job);
res = mxq_load_job_from_group_for_daemon(server->mysql, job, group->group_id, daemon, glist->slots_per_job, glist->jobs_max);
if (!res) {
return 0;
}
Expand Down

0 comments on commit b329b7a

Please sign in to comment.