def test_create_and_requeue_job(self): """Requeueing existing jobs.""" job = Job.create(func=fixtures.div_by_zero, args=(1, 2, 3)) job.origin = 'fake' job.save() get_failed_queue().quarantine(job, Exception('Some fake error')) # noqa self.assertEqual(Queue.all(), [get_failed_queue()]) # noqa self.assertEqual(get_failed_queue().count, 1) requeued_job = requeue_job(job.id) self.assertEqual(get_failed_queue().count, 0) self.assertEqual(Queue('fake').count, 1) self.assertEqual(requeued_job.origin, job.origin)
def test_job_access_within_job_function(self): """The current job is accessible within the job function.""" q = Queue() q.enqueue(fixtures.access_self) # access_self calls get_current_job() and asserts w = Worker([q]) w.work(burst=True) assert get_failed_queue(self.testconn).count == 0
def test_create_failed_and_cancel_job(self): """test creating and using cancel_job deletes job properly""" failed_queue = get_failed_queue(connection=self.testconn) job = failed_queue.enqueue(fixtures.say_hello) job.set_status(JobStatus.FAILED) self.assertEqual(1, len(failed_queue.get_jobs())) cancel_job(job.id) self.assertEqual(0, len(failed_queue.get_jobs()))
def requeue_failed_jobs(): failed_queue = get_failed_queue(connection=sjs.get_redis_conn()) jobs_to_requeue = failed_queue.get_job_ids() for job_id in jobs_to_requeue: failed_queue.requeue(job_id) return jobs_to_requeue
def handle_exception(job, exc_type, exc_value, tb_obj): failed_queue = get_failed_queue(redis_conn, job.__class__) exc_info_str = json.dumps({ "message": str(exc_value), "traceback": Worker._get_safe_exception_string( traceback.format_exception(exc_type, exc_value, tb_obj)) }) failed_queue.quarantine(job, exc_info=exc_info_str) return False
def test_job_method(**kwargs): print " ********* start jobs execution ".encode("utf-8") frappe.init('') conn = get_redis_conn() print "** empty failed queue" q = get_failed_queue(connection=conn) e = q.empty() print "** get scheduled jobs" scheduler = Scheduler(connection=conn) print "jobs scheduled : {0}".format(scheduler.get_jobs()) print "** get kwards args" print "kwargs = {0}".format(kwargs) print " ********* end jobs execution ".encode("utf-8")
def __init__(self, queues, number_of_processes=1, connection=None): if connection is None: conenction = get_current_connection() self.connection = connection if isinstance(queues, Queue): queues = [queues] self.log = logger self.queues = queues self.validate_queues() self.number_of_processes = number_of_processes self.failed_queue = get_failed_queue(connection=self.connection) self._stopped = False
def jobs_failed(): failed_queue = get_failed_queue(connection=sjs.get_redis_conn()) return failed_queue.get_job_ids()
def setUp(self): cache.clear() get_queue('variants').empty() get_queue('default').empty() get_failed_queue(get_connection()).empty()
def get_report_metrics(self): conn = self.connection worker_count = len(SimpleWorker.all(connection=conn)) fq = get_failed_queue(connection=conn) return {"queue.failed": len(fq), "queue.workers": worker_count}