Я новичок в платформе 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
A
ответ
1
Для этого вы можете использовать psq, который предназначен для того, чтобы выглядеть как сельдерей. С общей перспективы Cloud Pub/Sub вы должны выполнить следующие шаги:
- Create a topic для сообщений о статусе обновления.
- В задаче async, статус которой вы хотите контролировать, периодически publish сообщение со статусом. Это сообщение будет иметь какой-то формат по вашему выбору, который указывает на процентное заполнение или конкретное сообщение для отображения.
- Create a subscription для вашей страницы мониторинга, которая будет получать сообщения по этой теме.
- На странице мониторинга (или фоновом процессе, который будет предоставлять данные на странице мониторинга), pull messages для подписки.
- Обработайте сообщения и обновите состояние своих заданий на странице мониторинга.
- Ack the messages Вы вытащили и обработали.
Несколько вещей, чтобы иметь в виду в этом рабочем процессе:
- Облако Pub/Sub гарантирует высокий минимум однократную доставку. Это означает, что вы могли бы получить одно и то же сообщение более одного раза.
- Cloud Pub/Sub не предоставляет никаких гарантий при заказе. Поэтому, если вы периодически публикуете обновления статуса, ваш абонент может потенциально получить их не в порядке. В вашем случае вы, вероятно, захотите, чтобы ваше сообщение включало в ваше сообщение какую-то отметку времени или строго возрастающий идентификатор, чтобы упорядочить ваши обновления статуса за каждую задачу. Если вы отслеживаете самое последнее полученное обновление статуса, вы можете игнорировать старые сообщения и немедленно их активировать.
Спасибо, Камал .. Я сделаю снимок. Когда я пытался, Google не документировал, как точки ссылок, прямо сейчас. –