예제 #1
0
def get_job_from_queue(status, limit=1):
    if limit:
        wait_jobs = JobQueue.select().where(
            JobQueue.status == status, JobQueue.party_id == PARTY_ID).order_by(
                JobQueue.create_date.asc()).limit(limit)
    else:
        wait_jobs = JobQueue.select().where(
            JobQueue.status == status,
            JobQueue.party_id == PARTY_ID).order_by(JobQueue.create_date.asc())
    return wait_jobs
예제 #2
0
def push_into_job_queue(job_id, config):
    job_queue = JobQueue()
    job_queue.job_id = job_id
    job_queue.status = 'waiting'
    job_queue.config = json.dumps(config)
    job_queue.party_id = PARTY_ID
    job_queue.create_date = datetime.datetime.now()
    job_queue.save(force_insert=True)
예제 #3
0
def running_job_amount():
    return JobQueue.select().where(
        JobQueue.status == "running",
        JobQueue.pid.is_null(False)).distinct().count()
예제 #4
0
def show_job_queue():
    jobs = JobQueue.select().where(JobQueue.role == 'guest',
                                   JobQueue.pid.is_null(False)).distinct()
    return jobs
예제 #5
0
def job_queue_size():
    return JobQueue.select().count()
예제 #6
0
def pop_from_job_queue(job_id):
    try:
        query = JobQueue.delete().where(JobQueue.job_id == job_id)
        return query.execute() > 0
    except Exception as e:
        return False
예제 #7
0
def update_job_queue(job_id, role, party_id, save_data):
    jobs = JobQueue.select().where(JobQueue.job_id == job_id,
                                   JobQueue.role == role,
                                   JobQueue.party_id == party_id)
    is_insert = True
    if jobs:
        job_queue = jobs[0]
        is_insert = False
    else:
        job_queue = JobQueue()
        job_queue.create_date = datetime.datetime.now()
    job_queue.job_id = job_id
    job_queue.role = role
    job_queue.party_id = party_id
    for k, v in save_data.items():
        if k in ['job_id', 'role', 'party_id']:
            continue
        setattr(job_queue, k, v)
    if is_insert:
        job_queue.save(force_insert=True)
    else:
        job_queue.save()
    return job_queue
def update_job_queue(job_id, role, party_id, save_data):
    jobs = JobQueue.select().where(JobQueue.job_id == job_id, JobQueue.role == role, JobQueue.party_id == party_id)
    is_insert = True
    if jobs:
        job_queue = jobs[0]
        is_insert = False
    else:
        job_queue = JobQueue()
        job_queue.create_date = datetime.datetime.now()
    job_queue.job_id = job_id
    job_queue.role = role
    job_queue.party_id = party_id
    if 'status' in save_data:
        if job_queue.status in ['success', 'failed', 'partial', 'deleted']:
            # Termination status cannot be updated
            save_data.pop('status')
    for k, v in save_data.items():
        if k in ['job_id', 'role', 'party_id']:
            continue
        setattr(job_queue, k, v)
    if is_insert:
        try:
            job_queue.save(force_insert=True)
        except:
            job_queue.save()
    else:
        job_queue.save()
    return job_queue
예제 #9
0
파일: job_manager.py 프로젝트: drougon/FATE
def update_job_queue(job_id, update_data):
    sql = JobQueue.update(**update_data).where(JobQueue.job_id == job_id)
    return sql.execute() > 0
예제 #10
0
파일: job_manager.py 프로젝트: drougon/FATE
def get_job_from_queue(status, limit=1):
    wait_jobs = JobQueue.select().where(JobQueue.status == status).order_by(
        JobQueue.create_date.asc()).limit(limit)
    return [job.to_json() for job in wait_jobs]
예제 #11
0
파일: job_manager.py 프로젝트: drougon/FATE
def running_job_amount():
    return JobQueue.select().where(JobQueue.status == "running").count()