Exemplo n.º 1
0
/**
 * @brief
 *	Get the next job from the cursor
 *
 * @param[in]	conn - Connection handle
 * @param[in]	st   - The cursor state
 * @param[out]  obj  - Job information is loaded into this object
 *
 * @return      Error code
 * @retval	-1 - Failure
 * @retval	 0 - Success
 *
 */
int
pg_db_next_job(pbs_db_conn_t *conn, void *st, pbs_db_obj_info_t *obj)
{
	pg_query_state_t *state = (pg_query_state_t *) st;

	return load_job(state->res, obj->pbs_db_un.pbs_db_job, state->row);
}
Exemplo n.º 2
0
void Jobserver::run()
{

	Processmanager pm;
	pm.init_num_process(2);
	pm.start();
		
	long jobscount=30;
	string is_worker_ready;
	int i=1;
	while (true){
		//collect Jobs
		jobscount=30*(i++);
		if (i>100){
			cout<<"Jobserver stop"<<endl;
			exit(0);
		}
		pm.set_jobs_count(jobscount);
		pm.adjust_proc_num();
	
		m_recv->recv(is_worker_ready);
		if (is_worker_ready=="OK"){
			//publish job
			load_job();	
			m_send->send(&rec,sizeof(struct REC));
			cout<<"Jobserver:publish job-"<<rec.billtype
				<<"-"<<rec.recid<<endl;		
		}
	}
}
Exemplo n.º 3
0
/**
 * @brief
 *	Load job data from the database
 *
 * @param[in]	conn - Connection handle
 * @param[in/out]obj  - Load job information into this object where
 *			jobid = obj->pbs_db_un.pbs_db_job->ji_jobid
 *
 * @return      Error code
 * @retval	-1 - Failure
 * @retval	 0 - Success
 * @retval	 1 -  Success but no rows loaded
 *
 */
int
pg_db_load_job(pbs_db_conn_t *conn, pbs_db_obj_info_t *obj)
{
	PGresult *res;
	int rc;
	pbs_db_job_info_t *pj = obj->pbs_db_un.pbs_db_job;

	SET_PARAM_STR(conn, pj->ji_jobid, 0);

	if ((rc = pg_db_query(conn, STMT_SELECT_JOB, 1, &res)) != 0)
		return rc;

	rc = load_job(res, pj, 0);

	PQclear(res);
	return rc;
}
Exemplo n.º 4
0
/*
 * Load all jobs and print information about each job
 */
void load_and_print_jobs (char * user) {

    int error_code = SLURM_SUCCESS, i;
    uint32_t array_id = NO_VAL;
    job_info_msg_t * job_buffer_ptr = NULL;
    job_info_t *job_ptr = NULL;
    char *end_ptr = NULL;

    error_code = (int) load_job(&job_buffer_ptr, 0);
    if (error_code) {
        slurm_perror ("slurm_load_jobs error");
        return;
    }

    printf("# jobid|jobstate|username|queue|requestedcores|mainnode|submittime|starttime\n");
    for (i = 0, job_ptr = job_buffer_ptr->job_array; i < job_buffer_ptr->record_count; i++, job_ptr++) {
        if ((array_id != NO_VAL) && (array_id != job_ptr->array_task_id)) {
            continue;
        }
        print_job(job_ptr, user);
    }
}
Exemplo n.º 5
0
void Job::load(FILE *file){
	load_job(file);
}