javaspringgoogle-app-enginequeuepush-queue

Are there any charges for Google App Engine Push Queue HTTP calls within the same application


Google App Engine's documentation says that once tasks have been added to Push-Queue, the Push-Queue will initiate HTTP calls to the handler/url specified in the newly added task.

My question: Do the HTTP call charges, or any other charges apply to internal HTTP calls initiated by Push-Queue (HTTP calls that never leave GAE)?

My task creation code (in {root}.activities.service) looks roughly like this:

Queue taskQueue = QueueFactory.getQueue(QUEUENAME);
add(TaskOptions.Builder.withUrl("/activity").
     param("actor", Long.toString(activityDTO.getActor())).
     param("actorGroup", Long.toString(activityDTO.getActorGroup())).
     param("action", activityDTO.getAction()).
     param("object", activityDTO.getObject()).
     param("objectGroup", Long.toString(activityDTO.getObjectGroup())).
     method(TaskOptions.Method.GET)
);

The receiving end-point in the controller (in {root}.activities.controller) looks like this:

@RestController
@RequestMapping("/activity")
public class ActivityController {
     .
     .
     .
  @RequestMapping(method = RequestMethod.GET)
  public ResponseEntity<GenericHTTPResponseDTO> recordActivity(ActivityDTO activityDTO) {

      activityService.recordActivity(activityDTO);

      return new ResponseEntity<>(HttpStatus.OK);
  }
}

Once Task is added to Push-Queue the Push-queue will then make an HTTP call to the '/activity' end point, which will trigger the recordActivity() method.


Solution

  • The Push Task Queue requests are billed like any other request: if you have an important number of requests, AppEngine will scale up the number of instances, and you will pay more.

    BUT, according to the AppEngine documentation, the data stored in the task queues (ie. the request payload, etc ...) are also billed: $0.026/Gb/month (2017-03-29).

    Source: https://cloud.google.com/appengine/pricing (section Other resources)