Облачные задачи являются асинхронными по проекту . Как вы упомянули, лучшим способом было бы соединить их с 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».