Пример #1
0
    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)
Пример #2
0
    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)
Пример #3
0
 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
Пример #4
0
 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
Пример #5
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()))
Пример #6
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()))
Пример #7
0
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
Пример #8
0
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
Пример #9
0
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")
Пример #10
0
    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
Пример #11
0
def jobs_failed():
    failed_queue = get_failed_queue(connection=sjs.get_redis_conn())
    return failed_queue.get_job_ids()
Пример #12
0
 def setUp(self):
     cache.clear()
     get_queue('variants').empty()
     get_queue('default').empty()
     get_failed_queue(get_connection()).empty()
Пример #13
0
 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}