*** Редактировать 2: хорошо, облачный планировщик pub/sub никогда не получает подтверждение через 10 минут. Большой вопрос: есть ли какой-нибудь фрагмент кода для отправки сообщения подтверждения/подтверждения сразу после первой отправки публикации/подписки, чтобы нам больше не приходилось об этом беспокоиться? ***
Я написал облачную функцию 2-го поколения в GCP для выполнения нескольких POST-вызовов к Shopify (по сути, обновления акций).
Функция работает хорошо, у меня есть время.sleep, чтобы не отправлять слишком много вызовов в Shopify.
Дело в том, что она запускается, а затем через 10 минут , снова начните работать, и я не понимаю, почему он должен просто остановиться.
Это запускается облачным планировщиком один раз в день ночью в Европе, Западе 3, Франкфурте. Я позволил экземплярам настроиться по умолчанию, без повторных попыток (также без повторных попыток в планировщике), просто установил 3600 секунд для моей функции.
Любой, у кого есть представление о том, что может здесь случилось? Я просмотрел документ + тысячи вопросов, но не смог найти ни одного связанного. Я добавил возврат 1 ко всем def, time.sleep в сообщение, чтобы избежать ошибок, убедился, что оно выполняется менее чем за 10 минут, поставил 3600 секунд?
Вот образец кода, который я написал:
Код: Выделить всё
import requests
import pandas as pd
from google.cloud import storage
import time
import json
from google.cloud import bigquery
def stock_to_shopify():
client=bigquery.Client()
query= """
SELECT * FROM `XXX.YYY.ZZZ` ORDER BY 1,2,3 LIMIT 400
"""
query_job = client.query(query)
headers = {
'X-Shopify-Access-Token': 'XXX',
'Content-Type': 'application/json',
}
for stock_to_shopify in query_job:
json_data = {
'location_id': stock_to_shopify[0],
'inventory_item_id': stock_to_shopify[1],
'available': stock_to_shopify[2],
}
response = requests.post(
'https://XXX.myshopify.com/admin/api/2024-04/inventory_levels/set.json',
headers=headers,
json=json_data,
)
time.sleep(1)
print(response.text)
return 1
def main(data,context):
stock_to_shopify()
print("run ok")
return 1
Поигрался с номерами экземпляров, но вернулся к значениям по умолчанию.
Добавил 3600 для запуска моей функции
Добавлен возврат 1 для всех определений
Подробнее здесь: https://stackoverflow.com/questions/788 ... otentially