Как выполнить асинхронные задачи в фоновом режиме, как запланировано в Google Cloud Platform? - PullRequest
0 голосов
/ 12 января 2019

Задача

  • Я хочу получать много игровых данных каждое утро в 9 часов. Поэтому я использую App Engine & cron job. Однако я хотел бы добавить облачные задачи, я не знаю, как это сделать.

Вопрос

  • Как я могу выполнять асинхронные задачи в фоновом режиме, как запланировано в Google Cloud Platform?
  • Что естественно для реализации (Cloud Scheduler + Cloud Tasks) или (cron job + Cloud Tasks)?

Среда разработки

  • App Engine Python (Гибкая среда).
  • Python 3,6

С уважением,

1 Ответ

0 голосов
/ 14 января 2019

Облачные задачи являются асинхронными по проекту . Как вы упомянули, лучшим способом было бы соединить их с Cloud Scheduler .

Прежде всего, поскольку облачному планировщику требуется конечная точка Pub / Sub или HTTP, для вызова после запуска заданий я рекомендую вам создать обработчик App Engine, к которому будет обращаться облачный планировщик, который создает и отправляет задание.

Вы можете сделать это, следуя этой документации . Прежде всего вам нужно создать очередь , а после я рекомендую вам развернуть простое приложение с обработчиком для создания задач. Небольшой пример:

from google.cloud import tasks_v2beta3
from flask import Flask, request

app = Flask(__name__)

@app.route('/createTask', methods=['POST'])
def create_task_handler():
    client = tasks_v2beta3.CloudTasksClient()
    parent = client.queue_path('YOUR_PROJECT', 'PROJECT_LOCATION', 'YOUR_QUEUE_NAME')

    task = {
        'app_engine_http_request': {
            'http_method': 'POST',
            'relative_uri': '/handler_to_call'
            }
    }

    response = client.create_task(parent, task)
    return response

Где'lative_uri '- это обработчик, который вызовет задача, и обрабатывает ваши данные.

Как только это будет сделано, следуйте документации Cloud Scheduler, чтобы создать задания , и укажите целевое значение равным App Engine HTTP, установите URL-адрес на '/ createTask', сервис, который обрабатывает URL-адрес и HTTP-метод для POST. Заполните остальные параметры по мере необходимости, и вы можете установить частоту «каждый понедельник 09:00».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...