Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
#ifndef __MXQ_JOB_H__
#define __MXQ_JOB_H__ 1
#include <stdint.h>
#include <mysql.h>
#include <sys/time.h>
#include <sys/resource.h>
#include <sched.h>
#include "mxq_daemon.h"
#include "mxq_group.h"
struct mxq_job {
uint64_t job_id;
uint16_t job_status;
uint16_t job_priority;
uint64_t group_id;
struct mxq_group * group_ptr;
char * job_workdir;
uint32_t job_argc;
char ** job_argv;
char * job_argv_str;
char * job_stdout;
char * job_stderr;
char * tmp_stdout;
char * tmp_stderr;
uint32_t job_umask;
char * host_submit;
char * host_id;
uint32_t daemon_id;
char * daemon_name;
char * host_hostname;
uint32_t host_pid;
uint32_t host_slots;
cpu_set_t host_cpu_set;
char * host_cpu_set_str;
int64_t date_submit;
int64_t date_start;
int64_t date_end;
struct timeval stats_starttime;
uint64_t stats_max_sumrss;
int32_t stats_status;
struct timeval stats_realtime;
struct rusage stats_rusage;
};
#define MXQ_JOB_STATUS_INQ 0
#define MXQ_JOB_STATUS_ASSIGNED 100
#define MXQ_JOB_STATUS_LOADED 150
#define MXQ_JOB_STATUS_RUNNING 200
#define MXQ_JOB_STATUS_KILLED 400
#define MXQ_JOB_STATUS_FAILED 750
#define MXQ_JOB_STATUS_CANCELLED 990
#define MXQ_JOB_STATUS_UNKNOWN 999
#define MXQ_JOB_STATUS_FINISHED 1000
#define _to_string(s) #s
#define status_str(x) _to_string(x)
char *mxq_job_status_to_name(uint64_t status);
void mxq_job_free_content(struct mxq_job *j);
int mxq_load_job(struct mx_mysql *mysql, struct mxq_job **mxq_jobs, uint64_t job_id);
int mxq_load_jobs_in_group(struct mx_mysql *mysql, struct mxq_job **mxq_jobs, struct mxq_group *grp);
int mxq_load_jobs_in_group_with_status(struct mx_mysql *mysql, struct mxq_job **mxq_jobs, struct mxq_group *grp, uint64_t job_status);
int mxq_unassign_jobs_of_server(struct mx_mysql *mysql, struct mxq_daemon *daemon);
int mxq_set_job_status_running(struct mx_mysql *mysql, struct mxq_job *job);
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_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_jobs_running_on_server(struct mx_mysql *mysql, struct mxq_job **jobs_result, struct mxq_daemon *daemon);
int mxq_unload_job_from_server(struct mx_mysql *mysql, uint64_t job_id);
#endif