def get(self, block=True, timeout=None):
     try:
         item = Queue.Queue.get(self, block, timeout)
     except Queue.Empty as e:
         raise Queue.Empty()
     with self.sizeLock:
         self.curSize -= len(item[1])
     return item
Exemplo n.º 2
0
 def get(self, timeout):
     item = self.collection.find_and_modify(sort=[('priority',
                                                   pymongo.ASCENDING)],
                                            remove=True)
     if item is None:
         raise Queue.Empty()
     else:
         return pickle.loads(item['task'])
Exemplo n.º 3
0
 def setUp(self):
     request = getTurbiniaRequest()
     self.kombu = celery.TurbiniaKombu('fake_topic')
     result = mock.MagicMock()
     result.payload = request.to_json()
     self.kombu.queue = mock.MagicMock()
     self.kombu.queue.__len__.return_value = 1
     self.kombu.queue.get.side_effect = [result, Queue.Empty('Empty Queue')]
 def get_new_msgs(self):
     msgs = []
     while not self._msg_queue.empty():
         try:
             msg = self._msg_queue.get(block=False)
             msgs.append(msg)
         except queue.Empty():
             return msgs
     return msgs
Exemplo n.º 5
0
def create_libdoc_in_separate_process(libname,
                                      format,
                                      python_paths,
                                      class_paths,
                                      timeout_duration=30):
    import os
    import subprocess
    import threading
    import time
    try:
        import Queue as queue
    except:
        import queue

    global INTERPRETER_PATH

    command = [INTERPRETER_PATH]
    command.append(
        os.path.join(os.path.dirname(os.path.realpath(__file__)),
                     'red_libraries.py'))
    command.append(libname)
    command.append(format)
    command.append(';'.join(python_paths))
    if class_paths:
        command.append(';'.join(class_paths))

    def get_output(process, q_stdout, q_stderr):
        out, err = process.communicate()
        q_stdout.put(out)
        q_stderr.put(err)

    encoded_command = __encode_unicode_if_needed(command)
    process = subprocess.Popen(encoded_command,
                               stdout=subprocess.PIPE,
                               stdin=subprocess.PIPE,
                               stderr=subprocess.PIPE)
    q_stdout = queue.Queue()
    q_stderr = queue.Queue()
    thread = threading.Thread(target=get_output,
                              args=(process, q_stdout, q_stderr))
    thread.daemon = True
    thread.start()

    try:
        out = q_stdout.get(timeout=timeout_duration)
        err = q_stderr.get()

        if out:
            return next(line[8:].rstrip().decode('UTF-8')
                        for line in out.splitlines()
                        if line.startswith(b'Libdoc >'))
        else:
            raise Exception(err.decode('UTF-8', 'replace'))
    except queue.Empty:
        process.kill()
        raise queue.Empty('Libdoc not generated due to timeout')
Exemplo n.º 6
0
 def get(self):
     item = self.collection.find_one_and_delete(
         {'schedule_time': {
             '$lt': datetime.utcnow()
         }},
         sort=[('priority', pymongo.ASCENDING)])
     if item is None:
         raise queue.Empty()
     else:
         return pickle.loads(item['task'])
Exemplo n.º 7
0
    def getJob(self):
        try:
            if self.output.empty():
                raise Queue.Empty()

            job = self.output.get(True, 1)
            self.output.task_done()
        except Queue.Empty as e:
            job = {'waiting': True}
        finally:
            return job
Exemplo n.º 8
0
def loop_insert(flag_queue, task_queue, res_queue, db_info):
    global loop_insert, loop_get

    logger.info('Starting: loop_insert() => %s' % (cfg['vddb-async-url']))

    select_todo_sql = db_info['sqls']['select-todo']
    select_limit = db_info['select-limit']

    todo_conn = gen_db_conn(db_info['todo-db'])

    while not should_die(flag_queue):
        try:
            while not res_queue.empty():
                ok = res_queue.get()

            rows = execute_sql(todo_conn,
                               select_todo_sql, (select_limit, ),
                               fetch=True)
            for record in rows:
                logger.info('Deleted mysql %d' % record[0])
                task_queue.put(record)

            time.sleep(1)
            results = []
            results_ok = 0
            rows_len = len(rows)
            for i in range(rows_len):
                try:
                    ok = res_queue.get(timeout=5)
                except Queue.Empty():
                    ok = False
                if ok:
                    results_ok += 1
                results.append(ok)

            if rows_len == 0:
                time.sleep(db_info['select-interval'])
            logger.info('One turn: (%d/%d), %r' %
                        (results_ok, rows_len, results))
        except KeyboardInterrupt:
            break
        except Exception:
            todo_conn.close()
            todo_conn = gen_db_conn(db_info['todo-db'])
            logger.error('loop_insert Exception: %r' % traceback.format_exc())
            time.sleep(0.5)

    todo_conn.close()
    logger.warning('@@@ Exit: loop_insert()')
Exemplo n.º 9
0
def test_perform_write_empty_queue(context):
    ('XMPPConnection.perform_write() should do '
     'nothing when has an empty write queue')

    conn = XMPPConnection('capulet.com', 5222)
    conn.write_queue = Mock(name='write_queue')
    conn.write_queue.get.side_effect = Queue.Empty('dang!')

    write = EventHandlerMock('on_write')
    conn.on.write(write)

    socket = Mock(name='socket')
    conn.perform_write(socket)

    socket.sendall.called.should.be.false
    write.called.should.be.false
Exemplo n.º 10
0
    def nextByte(self):
        """Get next 8 bits as a byte, tail-padded with zeroes if queue has fewer than 8 bits"""
        # We could just call nextBit() 8 times and glue them all together, but this is faster
        if not len(self.data) and self.currentbyte is None:
            if self.currentinputbyte:
                output = chr(
                    int(
                        self.currentinputbyte + "0" *
                        (8 - len(self.currentinputbyte)), 2))
                self.currentinputbyte = ""
                return output
            else:
                raise Queue.Empty()
        if self.currentbyte is None:
            self.currentbyte = self.data[0]
            self.data = self.data[1:]
        bitmask = (2 << self.bitposition) - 1
        bits = ord(self.currentbyte) & bitmask
        bits <<= 7 - self.bitposition
        if self.bitposition < 7:
            if self.data:
                self.currentbyte = self.data[0]
                self.data = self.data[1:]
                bitmask = (
                    (2 <<
                     (7 - self.bitposition)) - 1) << (self.bitposition + 1)
                bits2 = ord(self.currentbyte) & bitmask
                bits |= bits2 >> (self.bitposition + 1)
            elif self.currentinputbyte:
                self.currentinputbyte += "0" * (7 - self.bitposition -
                                                len(self.currentinputbyte))
                bits2 = int(self.currentinputbyte[:7 - self.bitposition], 2)
                bits |= bits2
                self.currentinputbyte = self.currentinputbyte[7 - self.
                                                              bitposition:]
                self.bitposition = 7
                self.currentbyte = None
            else:
                self.bitposition = 7
                self.currentbyte = None
        else:
            self.currentbyte = None
            self.bitposition = 7

        return chr(bits)
Exemplo n.º 11
0
    def write(self):
        ''' Create a list of instructions '''

        try:

            old, new = self.instructions.get_nowait()

            # 1. Find the line with 'old' on it

            for line, string in enumerate(self.widget.read().split("\n")):

                if old in string:

                    line += 1

                    break

            else:

                raise Queue.Empty()

            # 2. Replace

            self.widget.replace(line, old, new)

            index = str(line) + ".0"

            # 3. Execute

            self.widget.exec_line(event=None, insert=index)

            # Recall

            self.widget.root.after(50, self.write)

        except Queue.Empty:

            if self.running == True:

                self.widget.root.after(choice([2000, 3000, 4000, 5000]),
                                       self.act)

        return
Exemplo n.º 12
0
 def nextBit(self):
     """Get next bit."""
     if not len(self.data) and self.currentbyte is None:
         if self.currentinputbyte:
             output = int(self.currentinputbyte[0])
             self.currentinputbyte = self.currentinputbyte[1:]
             return output
         else:
             raise Queue.Empty()
     if self.currentbyte is None:
         self.currentbyte = self.data[0]
         self.data = self.data[1:]
     bitmask = 1 << self.bitposition
     bit = ord(self.currentbyte) & bitmask
     bit >>= self.bitposition
     self.bitposition -= 1
     if self.bitposition < 0:
         self.bitposition = 7
         self.currentbyte = None
     return bit
Exemplo n.º 13
0
 def testHttp(self):
     serverEnabled, serverPort, serverUser, serverPassword = getWebserverInfo(
     )
     if serverEnabled:
         self.task = taskdict['http']['class']
         taskKwargs = {
             'http': 'http://localhost:%s/jsonrpc' % str(serverPort),
             'user': serverUser,
             'pass': serverPassword,
             'type': 'http',
             'request-type': 'GET',
             'notify': False
         }
         userargs = '?request={"jsonrpc":%__"2.0"%_%__"id": 1%_%__"method":"Application.Setmute"%_%__"params":{"mute":"toggle"}}'
         tm = TaskManager(self.task,
                          1,
                          None,
                          -1,
                          taskid='T1',
                          userargs=userargs,
                          **taskKwargs)
         tm.returnHandler = self.returnHandler
         topic = Topic('onPlaybackStarted')
         runKwargs = events['onPlayBackStarted']['expArgs']
         self.clear_q()
         tm.start(topic, **runKwargs)
         try:
             tr = self.q.get(timeout=1)
         except Queue.Empty:
             raise Queue.Empty(_('testHttp never returned'))
         else:
             tm.start(topic, **runKwargs)  # Toggle Mute again
         if tr.iserror is True:
             log(loglevel=xbmc.LOGERROR,
                 msg=_('testHttp returned with an error: %s') % tr.msg)
         if '{"id":1,"jsonrpc":"2.0","result":' not in tr.msg:
             raise AssertionError(_('Http test failed'))
     else:
         raise AssertionError(
             'Http test cannot be run because webserver not enabled')
Exemplo n.º 14
0
 def test_get_new_task_empty_queue(self):
     # prepare mock queues
     for queue in self.queue_map.values():
         queue.get.side_effect = threadqueue.Empty()
     exc = scheduler.Executor("a", self.conn, self.queue_map, timeout=1)
     self.assertEqual(exc._get_new_task(), None)
Exemplo n.º 15
0
 def get(self):
     task = self.queue_object.pop()
     if task is None:
         raise queue.Empty()
     else:
         return pickle.loads(task[0])
Exemplo n.º 16
0
 def side_effect(*args, **kwds):
     raise Queue.Empty()
Exemplo n.º 17
0
 def peek(self):
     if len(self.__heap) == 0:
         raise Queue.Empty()
     return self.__heap[0]
Exemplo n.º 18
0
 def get(self, block=True, timeout=None):
     return self._failOrWait(block, timeout, Queue.Empty())
Exemplo n.º 19
0
 def get_message_from_unpublished_stack(self, seconds):
     if len(self.messages) == 0:
         raise queue.Empty()
     else:
         return self.messages.pop()
Exemplo n.º 20
0
 def pop(self):
     if len(self.__heap) == 0:
         raise Queue.Empty()
     return heapq.heappop(self.__heap)
Exemplo n.º 21
0
    def testBadCheckMessages(self):
        result = mock.MagicMock()
        result.payload = 'non-json-data'
        self.kombu.queue.get.side_effect = [result, Queue.Empty('Empty Queue')]

        self.assertListEqual(self.kombu.check_messages(), [])
Exemplo n.º 22
0
    def get_result(self, timeout=0):
        if self.result != None:
            return self.result

        tmp_result = []
        missed_key = []
        if (timeout > 0):
            start_time = time.time()
            end_time = start_tume + timeout

            for a in self.ops:
                curr_time = time.time()
                remain_time = end_time - curr_time
                if remain_time < 0:
                    raise Queue.Empty()

                ret, miss = a.get_result(remain_time)
                tmp_result.append(ret)
                missed_key += miss
        else:
            for a in self.ops:
                ret, miss = a.get_result()
                tmp_result.append(ret)
                missed_key += miss

        if self.cmd == 'bop mget':
            result = {}
            for a in tmp_result:
                result.update(a)

        else:  # bop smget
            length = len(tmp_result)

            # empty
            if length <= 0:
                return []

            # merge sort
            result = []
            while True:
                # remove empty list
                while len(tmp_result[0]) == 0:
                    tmp_result.pop(0)
                    if len(tmp_result) == 0:  # all done
                        if self.result == None and self.invalid == True:
                            raise ArcusNodeConnectionException(
                                'current async result is unavailable because Arcus node is disconnected now'
                            )
                        missed_key.sort()
                        self.result = result
                        self.missed_key = missed_key
                        return self.result

                min = tmp_result[0][0]
                idx = 0
                for i in xrange(0, len(tmp_result)):
                    if len(tmp_result[i]) and tmp_result[i][0] < min:
                        min = tmp_result[i][0]
                        idx = i

                result.append(tmp_result[idx].pop(0))

        if self.result == None and self.invalid == True:
            raise ArcusNodeConnectionException(
                'current async result is unavailable because Arcus node is disconnected now'
            )
        missed_key.sort()
        self.result = result
        self.missed_key = missed_key
        return self.result
 def get(self, timeout=None):
     if timeout:
         raise Queue.Empty()
Exemplo n.º 24
0
 def get(self):
     with self._lock:
         if len(self.queue) == 0:
             raise Queue.Empty()
         return copy.deepcopy(self.queue[0])
Exemplo n.º 25
0
 def get_nowait(self):
     with self.__lock:
         if len(self.__queue) == 0:
             raise Queue.Empty()
         return self.__queue.popleft()
Exemplo n.º 26
0
 def get(self, timeout):
     task = self.queue_object.pop()
     if task is None:
         raise Queue.Empty()
     else:
         return task
Exemplo n.º 27
0
 def get(qSelf, timeout=1):
     qSelf.getCallCount += 1
     raise Queue.Empty("MOCK")