コード例 #1
0
  def get(cls, queue_names=frozenset()):
    """Returns a 2-tuple: (list of push _QueueInfo, list of pull _QueueInfo)."""
    fetch_queue_request = taskqueue_service_pb.TaskQueueFetchQueuesRequest()
    fetch_queue_request.set_max_rows(1000)
    fetch_queue_response = taskqueue_service_pb.TaskQueueFetchQueuesResponse()
    apiproxy_stub_map.MakeSyncCall('taskqueue',
                                   'FetchQueues',
                                   fetch_queue_request,
                                   fetch_queue_response)

    queue_stats_request = taskqueue_service_pb.TaskQueueFetchQueueStatsRequest()
    for queue in fetch_queue_response.queue_list():
      queue_stats_request.add_queue_name(queue.queue_name())
    queue_stats_response = (
        taskqueue_service_pb.TaskQueueFetchQueueStatsResponse())
    apiproxy_stub_map.MakeSyncCall('taskqueue',
                                   'FetchQueueStats',
                                   queue_stats_request,
                                   queue_stats_response)

    for queue, queue_stats in zip(
        fetch_queue_response.queue_list(),
        queue_stats_response.queuestats_list()):
      if queue_names and queue.queue_name() not in queue_names:
        continue
      yield cls._from_queue_and_stats(queue, queue_stats)
コード例 #2
0
    def fetch_queue(self, app_id, http_data):
        """

    Args:
      app_id: The application ID.
      http_data: The payload containing the protocol buffer request.
    Returns:
      A tuple of a encoded response, error code, and error detail.
    """
        # TODO implement.
        request = taskqueue_service_pb.TaskQueueFetchQueuesRequest(http_data)
        response = taskqueue_service_pb.TaskQueueFetchQueuesResponse()
        return (response.Encode(), 0, "")
コード例 #3
0
    def test_get(self):
        fetch_queue_request = taskqueue_service_pb.TaskQueueFetchQueuesRequest(
        )
        fetch_queue_request.set_max_rows(1000)
        fetch_queue_response = taskqueue_service_pb.TaskQueueFetchQueuesResponse(
        )
        queue1 = fetch_queue_response.add_queue()
        queue1.set_queue_name('queue1')
        queue1.set_mode(taskqueue_service_pb.TaskQueueMode.PUSH)
        queue1.set_user_specified_rate('20/s')
        queue1.set_bucket_capacity(10)
        queue2 = fetch_queue_response.add_queue()
        queue2.set_queue_name('queue2')
        queue2.set_mode(taskqueue_service_pb.TaskQueueMode.PULL)
        queue2.set_user_specified_rate('20/s')
        queue2.set_bucket_capacity(10)

        apiproxy_stub_map.MakeSyncCall('taskqueue',
                                       'FetchQueues', fetch_queue_request,
                                       mox.IgnoreArg()).WithSideEffects(
                                           lambda _, _1, _2, response: response
                                           .CopyFrom(fetch_queue_response))

        queue_stats_request = taskqueue_service_pb.TaskQueueFetchQueueStatsRequest(
        )
        queue_stats_request.add_queue_name('queue1')
        queue_stats_request.add_queue_name('queue2')
        queue_stats_response = (
            taskqueue_service_pb.TaskQueueFetchQueueStatsResponse())
        queue_stats1 = queue_stats_response.add_queuestats()
        queue_stats1.set_num_tasks(20)
        queue_stats1.set_oldest_eta_usec(-1)
        queue_stats2 = queue_stats_response.add_queuestats()
        queue_stats2.set_num_tasks(50)
        queue_stats2.set_oldest_eta_usec(1234567890)

        apiproxy_stub_map.MakeSyncCall('taskqueue',
                                       'FetchQueueStats', queue_stats_request,
                                       mox.IgnoreArg()).WithSideEffects(
                                           lambda _, _1, _2, response: response
                                           .CopyFrom(queue_stats_response))

        self.mox.ReplayAll()
        queues = list(taskqueue_utils.QueueInfo.get())
        self.mox.VerifyAll()
        self.assertEqual('queue1', queues[0].name)
        self.assertEqual('queue2', queues[1].name)
コード例 #4
0
def get_queue_names(app_id=None):
    """Returns a list with all non-special queue names for app_id."""
    rpc = apiproxy_stub_map.UserRPC('taskqueue')
    request = taskqueue_service_pb.TaskQueueFetchQueuesRequest()
    response = taskqueue_service_pb.TaskQueueFetchQueuesResponse()
    if app_id:
        request.set_app_id(app_id)
    request.set_max_rows(100)
    queues = ['default']
    try:
        rpc.make_call('FetchQueues', request, response)
        rpc.check_success()

        for queue in response.queue_list():
            if (queue.mode() == taskqueue_service_pb.TaskQueueMode.PUSH
                    and not queue.queue_name().startswith('__')
                    and queue.queue_name() != 'default'):
                queues.append(queue.queue_name())
    except Exception, e:
        logging.exception('Failed to get queue names: %s', str(e))