Example #1
0
 def setUp(self):
     self.q = Queue()
     self.w = Worker.create(
         [self.q],
         expires_after=1,
         default_worker_ttl=1
     )
Example #2
0
    def handle(self, *args, **options):
        """
        The actual logic of the command. Subclasses must implement
        this method.

        """
        from django.conf import settings
        from pq.queue import Queue
        from pq.worker import Worker

        sentry_dsn = options.get('sentry_dsn')
        if not sentry_dsn:
            sentry_dsn = settings.SENTRY_DSN if hasattr(
                settings, 'SENTRY_DSN') else None

        verbosity = int(options.get('verbosity'))

        queues = list(map(Queue.create, args))
        w = Worker.create(queues,
                          name=options.get('name'),
                          connection=options['connection'])

        # Should we configure Sentry?
        if sentry_dsn:
            from raven import Client
            from pq.contrib.sentry import register_sentry
            client = Client(args.sentry_dsn)
            register_sentry(client, w)

        w.work(burst=options['burst'])
Example #3
0
    def handle(self, *args, **options):
        """
        The actual logic of the command. Subclasses must implement
        this method.

        """
        from django.conf import settings
        from pq.queue import Queue
        from pq.worker import Worker

        sentry_dsn = options.get('sentry_dsn')
        if not sentry_dsn:
            sentry_dsn = settings.SENTRY_DSN if hasattr(settings, 'SENTRY_DSN') else None

        verbosity = int(options.get('verbosity'))

        queues = list(map(Queue.create, args))
        w = Worker.create(queues, name=options.get('name'), connection=options['connection'])

        # Should we configure Sentry?
        if sentry_dsn:
            from raven import Client
            from pq.contrib.sentry import register_sentry
            client = Client(args.sentry_dsn)
            register_sentry(client, w)

        w.work(burst=options['burst'])
Example #4
0
    def handle(self, *args, **options):
        """
        The actual logic of the command. Subclasses must implement
        this method.

        """
        from django.conf import settings
        from pq.queue import Queue, SerialQueue
        from pq.worker import Worker

        sentry_dsn = options.get('sentry_dsn')
        if not sentry_dsn:
            sentry_dsn = settings.SENTRY_DSN if hasattr(settings, 'SENTRY_DSN') else None

        verbosity = int(options.get('verbosity'))
        queues = []
        if options.get('terminate'):
            workern = [w.name for w in Worker.objects.all()]

            for worker in Worker.objects.all()[:]:
                worker.stop = True
                worker.save()

            print('Terminating %s ...' % ' '.join(workern))  
            while Worker.objects.all():
                time.sleep(5)
            
            return
        if not args:
            args = [q[0] for q in Queue.objects.values_list('name').exclude(name='failed')]
            args.sort()
        if not args:
            print('There are no queues to work on')
            sys.exit(1)
        for queue in args:
            try:
                q = Queue.objects.get(name=queue)
            except Queue.DoesNotExist:
                print("The '%s' queue does not exist. Use the pqcreate command to create it." % queue)
                continue
            if q.serial:
                q = SerialQueue.objects.get(name=queue)
            else:
                q = Queue.objects.get(name=queue)
            q.connection = options['connection']
            q._saved = True
            queues.append(q)
        if queues:
            w = Worker.create(queues, name=options.get('name'), connection=options['connection'])

            # Should we configure Sentry?
            if sentry_dsn:
                from raven import Client
                from pq.contrib.sentry import register_sentry
                client = Client(sentry_dsn)
                register_sentry(client, w)

            w.work(burst=options['burst'])
Example #5
0
 def setUp(self):
     q = Queue()
     q.enqueue(say_hello, kwargs={'name':'bob'}, result_ttl=1)  # expires
     q.enqueue(say_hello, kwargs={'name':'polly'})  # won't expire in this test lifecycle
     q.enqueue(say_hello, kwargs={'name':'frank'}, result_ttl=-1) # never expires
     w = Worker.create([q])
     w.work(burst=True)
     q.enqueue(say_hello, kwargs={'name':'david'}) # hasn't run yet
     self.q = q
Example #6
0
 def setUp(self):
     password = "******"
     user = User.objects.create_superuser("test", "*****@*****.**", password)
     self.client.login(username=user.username, password=password)
     self.q = Queue()
     self.q.enqueue_call(say_hello, args=("you",))
     self.q.enqueue_call(div_by_zero, args=(1,))
     w = Worker.create(self.q)
     w.work(burst=True)
     self.q.enqueue_call(say_hello, args=("me",))
Example #7
0
 def setUp(self):
     password = '******'
     user = User.objects.create_superuser('test', '*****@*****.**', password)
     self.client.login(username=user.username, password=password)
     self.q = Queue()
     self.q.enqueue_call(say_hello, args=('you', ))
     self.q.enqueue_call(div_by_zero, args=(1, ))
     w = Worker.create(self.q)
     w.work(burst=True)
     self.q.enqueue_call(say_hello, args=('me', ))
Example #8
0
 def setUp(self):
     password = '******'
     user = User.objects.create_superuser('test', '*****@*****.**', password)
     self.client.login(username=user.username, password=password)
     self.q = Queue()
     self.q.enqueue_call(say_hello, args=('you',))
     self.q.enqueue_call(div_by_zero, args=(1,))
     self.q.schedule(datetime(2099, 1, 1, tzinfo=utc), say_hello, 'later')
     w = Worker.create(self.q)
     w.work(burst=True)
     self.q.enqueue_call(say_hello, args=('me',))
Example #9
0
    def test_custom_exc_handling(self):
        """Custom exception handling."""

        w = Worker.create([self.q], exc_handler=self.black_hole)
        w.work(burst=True)  # should silently pass

        # Postconditions
        self.assertEqual(self.q.count, 0)
        self.assertEqual(self.fq.count, 0)

        # Check the job
        job = Job.objects.get(id=self.job.id)
        self.assertEqual(job.status, Job.FAILED)
Example #10
0
    def test_custom_exc_handling(self):
        """Custom exception handling."""

        w = Worker.create([self.q], exc_handler=self.black_hole)
        w.work(burst=True)  # should silently pass

        # Postconditions
        self.assertEquals(self.q.count, 0)
        self.assertEquals(self.fq.count, 0)

        # Check the job
        job = Job.objects.get(id=self.job.id)
        self.assertEquals(job.status, Job.FAILED)
Example #11
0
 def setUp(self):
     self.q = Queue()
     self.w = Worker.create([self.q])
     self.job = self.q.enqueue(say_hello, args=('Bob', ), result_ttl=1)
     self.w.work(burst=True)
Example #12
0
 def setUp(self):
     self.q = Queue()
     self.fq = get_failed_queue()
     self.w = Worker.create([self.q])
     self.job = self.q.enqueue(div_by_zero)
     self.enqueued_at = self.job.enqueued_at
Example #13
0
 def setUp(self):
     self.q = Queue('foo')
     self.w = Worker.create([self.q])
     self.job = self.q.enqueue('test_pq.fixtures.say_hello', name='Frank')
Example #14
0
 def setUp(self):
     self.fooq, self.barq = Queue('foo'), Queue('bar')
     self.w = Worker.create([self.fooq, self.barq])
Example #15
0
 def setUp(self):
     self.q = Queue()
     self.w = Worker.create([self.q])
Example #16
0
 def setUp(self):
     self.sentinel_file = '/tmp/.rq_sentinel'
     self.q = Queue()
     self.fq = get_failed_queue()
     self.w = Worker.create([self.q])
Example #17
0
 def setUp(self):
     self.q = Queue()
     self.fq = get_failed_queue()
     self.w = Worker.create([self.q])
     self.job = self.q.enqueue(div_by_zero)
     self.enqueued_at = self.job.enqueued_at
Example #18
0
 def setUp(self):
     self.q = Queue()
     self.fq = get_failed_queue()
     self.w = Worker.create([self.q])
Example #19
0
 def setUp(self):
     self.q = Queue('foo')
     self.w = Worker.create([self.q])
     self.job = self.q.enqueue('test_pq.fixtures.say_hello', name='Frank')
Example #20
0
 def setUp(self):
     self.fooq, self.barq = Queue('foo'), Queue('bar')
     self.w = Worker.create([self.fooq, self.barq])
     self.fooq.enqueue(say_hello, name='Frank')
Example #21
0
 def setUp(self):
     self.fooq, self.barq = Queue('foo'), Queue('bar')
     self.w = Worker.create([self.fooq, self.barq])
Example #22
0
 def setUp(self):
     self.q = Queue()
     self.w = Worker.create([self.q], name='Test')
     self.w.heartbeat = datetime(2010, 1, 1, tzinfo=utc)
Example #23
0
 def setUp(self):
     self.q = Queue()
     self.w = Worker.create([self.q])
Example #24
0
    def test_create_worker(self):
        """Worker creation."""

        w = Worker.create([self.fooq, self.barq])
        self.assertEquals(w.queues, [self.fooq, self.barq])
Example #25
0
 def setUp(self):
     self.q = Queue(scheduled=True)
     self.w = Worker.create([self.q])
Example #26
0
 def setUp(self):
     self.q = Queue()
     self.w = Worker.create([self.q])
     self.job = self.q.enqueue(say_hello, args=('Bob',), result_ttl=1)
     self.w.work(burst=True)
Example #27
0
 def setUp(self):
     self.q = Queue()
     self.w = Worker.create([self.q], name='Test')
     self.w.heartbeat = datetime(2010, 1, 1, tzinfo=utc)
Example #28
0
 def setUp(self):
     self.fooq, self.barq = Queue('foo'), Queue('bar')
     self.w = Worker.create([self.fooq, self.barq])
     self.fooq.enqueue(say_hello, name='Frank')
Example #29
0
    def handle(self, *args, **options):
        """
        The actual logic of the command. Subclasses must implement
        this method.

        """
        from django.conf import settings
        from pq.queue import Queue, SerialQueue
        from pq.worker import Worker

        sentry_dsn = options.get('sentry_dsn')
        if not sentry_dsn:
            sentry_dsn = settings.SENTRY_DSN if hasattr(
                settings, 'SENTRY_DSN') else None

        verbosity = int(options.get('verbosity'))
        queues = []
        if options.get('terminate'):
            workern = [w.name for w in Worker.objects.all()]

            for worker in Worker.objects.all()[:]:
                worker.stop = True
                worker.save()

            print('Terminating %s ...' % ' '.join(workern))
            while Worker.objects.all():
                time.sleep(5)

            return
        if not args:
            args = [
                q[0] for q in Queue.objects.values_list('name').exclude(
                    name='failed')
            ]
            args.sort()
        if not args:
            print('There are no queues to work on')
            sys.exit(1)
        for queue in args:
            try:
                q = Queue.objects.get(name=queue)
            except Queue.DoesNotExist:
                print(
                    "The '%s' queue does not exist. Use the pqcreate command to create it."
                    % queue)
                continue
            if q.serial:
                q = SerialQueue.objects.get(name=queue)
            else:
                q = Queue.objects.get(name=queue)
            q.connection = options['connection']
            q._saved = True
            queues.append(q)
        if queues:
            w = Worker.create(queues,
                              name=options.get('name'),
                              connection=options['connection'])

            # Should we configure Sentry?
            if sentry_dsn:
                from raven import Client
                from pq.contrib.sentry import register_sentry
                client = Client(sentry_dsn)
                register_sentry(client, w)

            w.work(burst=options['burst'])
Example #30
0
 def setUp(self):
     self.q = Queue()
     self.q.save()
     self.fq = get_failed_queue()
     self.w = Worker.create([self.q])
Example #31
0
 def setUp(self):
     self.sentinel_file = '/tmp/.rq_sentinel'
     self.q = Queue()
     self.fq = get_failed_queue()
     self.w = Worker.create([self.q])
Example #32
0
 def setUp(self):
     self.q = Queue()
     self.q.enqueue_call(div_by_zero, args=(1, ))
     w = Worker.create(self.q)
     w.work(burst=True)
Example #33
0
    def test_create_worker(self):
        """Worker creation."""

        w = Worker.create([self.fooq, self.barq])
        self.assertEquals(w.queues, [self.fooq, self.barq])
Example #34
0
 def setUp(self):
     self.q = Queue()
     self.q.enqueue_call(div_by_zero, args=(1,))
     w = Worker.create(self.q)
     w.work(burst=True)
Example #35
0
 def setUp(self):
     self.q = Queue()
     self.w = Worker.create([self.q], expires_after=1, default_worker_ttl=1)