2016-05-06 2 views
1

Я новичок в платформе Google Compute/Google App Engine. В настоящее время я переношу приложение python flask с использованием сельдерея для асинхронных задач на платформу Google Compute/Google App Engine. Однако в документах написано, что я должен использовать Google Pub/Sub вместо сельдерея. В моем приложении всякий раз, когда я запускаю асинхронную задачу, у меня есть страница для контроля состояния задания по тому же принципу, что и http://blog.miguelgrinberg.com/post/using-celery-with-flask. Я проверил документы для google pub/sub, но я теряю, как реализовать то же самое с помощью google pub/sub. Может кто-нибудь помочь или указать мне в правильном направлении, чтобы реализовать то же самое в google pub/sub.Мониторинг состояния представленной вакансии google pub/sub

ответ

1

Для этого вы можете использовать psq, который предназначен для того, чтобы выглядеть как сельдерей. С общей перспективы Cloud Pub/Sub вы должны выполнить следующие шаги:

  1. Create a topic для сообщений о статусе обновления.
  2. В задаче async, статус которой вы хотите контролировать, периодически publish сообщение со статусом. Это сообщение будет иметь какой-то формат по вашему выбору, который указывает на процентное заполнение или конкретное сообщение для отображения.
  3. Create a subscription для вашей страницы мониторинга, которая будет получать сообщения по этой теме.
  4. На странице мониторинга (или фоновом процессе, который будет предоставлять данные на странице мониторинга), pull messages для подписки.
  5. Обработайте сообщения и обновите состояние своих заданий на странице мониторинга.
  6. Ack the messages Вы вытащили и обработали.

Несколько вещей, чтобы иметь в виду в этом рабочем процессе:

  1. Облако Pub/Sub гарантирует высокий минимум однократную доставку. Это означает, что вы могли бы получить одно и то же сообщение более одного раза.
  2. Cloud Pub/Sub не предоставляет никаких гарантий при заказе. Поэтому, если вы периодически публикуете обновления статуса, ваш абонент может потенциально получить их не в порядке. В вашем случае вы, вероятно, захотите, чтобы ваше сообщение включало в ваше сообщение какую-то отметку времени или строго возрастающий идентификатор, чтобы упорядочить ваши обновления статуса за каждую задачу. Если вы отслеживаете самое последнее полученное обновление статуса, вы можете игнорировать старые сообщения и немедленно их активировать.
+0

Спасибо, Камал .. Я сделаю снимок. Когда я пытался, Google не документировал, как точки ссылок, прямо сейчас. –