def mutate(self, info, client, name, description, complete=False, deadline="", labor=""): # Will need to pass null or nothing in for empty deadline on frontend user = info.context.user if user.is_anonymous: # verifies that user is logged in return CreateJob(ok=False, status="Must be logged in.") else: new_job = Job( # creates new client from input data client=Client.objects.get(pk=from_global_id(client)[1]), name=name, description=description, complete=complete, user=user, ) # verifies that required data is present then creates client if labor != "": new_job.labor = labor if deadline != "": new_job.deadline = deadline if complete is not False: new_job.complete = complete new_job.save() return CreateJob(job=new_job, ok=True, status="ok")
def sample_Job(): job = Job(executor="psh", filename="testfile", description="Test job description. This job is not real.", os="windows", user="******", timeCreated=utcNowTimestamp()) return job
def enqueue_job(func, *args, description=None, course_id=None, user_id=None, timeout=300, result_kind='string', **kwargs): if not description: raise ValueError('Description required to start background job') if not course_id: raise ValueError('Course ID required to start background job') if not user_id: user_id = current_user.id job = Job(status='queued', course_id=course_id, user_id=user_id, name=func.__name__, description=description, result_kind=result_kind) db.session.add(job) db.session.commit() try: get_queue().enqueue_call(func=func, args=args, kwargs=kwargs, job_id=str(job.id), timeout=timeout) except redis.exceptions.ConnectionError as e: job.failed = True job.status = 'finished' job.log = 'Could not connect to Redis: ' + str(e) db.session.add(job) db.session.commit() return job