2016-11-02 23 views
7

próbuję wdrożyć system powiadomień push w PHP, który musi wysłać masywne powiadomienia z możliwie najkrótszym czasie, jak described here:Auto skalowanie Kolejka ciągnąć w App Engine

push notification architecture

Wadą I zobacz w tej architekturze, jak automatycznie skalować pracowników powiadomień. O ile mi wiadomo, nie ma sposobu, aby policzyć oczekujące zadania w kolejce do wyciągania, ani liczyć aktywnych pracowników. Jak byś to zrobił?

Odpowiedz

0

Rozwiązałem to liczenie zadań oczekujących w kolejce powiadomień z tej metody, a następnie dodanie pracowników w zależności od liczby oczekujących zadań:

public static function task_count($queue) 
    { 
     $request = new google\appengine\TaskQueueFetchQueueStatsRequest(); 
     $response = new google\appengine\TaskQueueFetchQueueStatsResponse(); 

     $request->addQueueName($queue);    

     google\appengine\runtime\ApiProxy::makeSyncCall('taskqueue', 'FetchQueueStats', $request, $response); 

     return $response->getQueueStats(0)->getNumTasks(); 
    }