change how we calculate active jobs, probably will remove it from pa_job_engine, safer with threads I think. But, mostyle, added in client / server socket comms between web FE and job manager, with better job creation message (including link to job detail) and when you view job detail it auto-refreshes every few seconds until job complete)
This commit is contained in:
18
job.py
18
job.py
@@ -7,6 +7,8 @@ from sqlalchemy.exc import SQLAlchemyError
|
||||
from status import st, Status
|
||||
from datetime import datetime, timedelta
|
||||
import pytz
|
||||
import socket
|
||||
from shared import PA_JOB_MANAGER_HOST, PA_JOB_MANAGER_PORT
|
||||
|
||||
class Joblog(db.Model):
|
||||
id = db.Column(db.Integer, db.Sequence('ill_id_seq'), primary_key=True )
|
||||
@@ -42,9 +44,8 @@ class Job(db.Model):
|
||||
# Utility classes for Jobs
|
||||
################################################################################
|
||||
def GetNumActiveJobs():
|
||||
ret = db.engine.execute("select num_active_jobs from pa_job_manager").first();
|
||||
if( ret != None ):
|
||||
return ret.num_active_jobs
|
||||
ret = db.engine.execute("select count(1) from job where pa_job_state != 'Completed'").first()
|
||||
return ret.count
|
||||
|
||||
###############################################################################
|
||||
# NewJob takes a name (which will be matched in pa_job_manager.py to run
|
||||
@@ -57,6 +58,17 @@ def NewJob(name, num_passes="1", num_files="0", wait_for=None ):
|
||||
db.session.add(job)
|
||||
db.session.commit()
|
||||
|
||||
try:
|
||||
print("Waking up PA Job Manager")
|
||||
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
s.connect((PA_JOB_MANAGER_HOST, PA_JOB_MANAGER_PORT))
|
||||
s.sendall(b'Hello, world')
|
||||
s.close()
|
||||
except Exception as e:
|
||||
st.SetAlert("danger")
|
||||
st.SetMessage("Failed to connect to job manager, has it crashed? Exception was:{}".format(e))
|
||||
return job
|
||||
|
||||
################################################################################
|
||||
# /jobs -> show current settings
|
||||
################################################################################
|
||||
|
||||
Reference in New Issue
Block a user