Облачная функция Python перезапускается снова и снова в GCP *** Редактировать: потенциально управляется тем, что pub/subPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Облачная функция Python перезапускается снова и снова в GCP *** Редактировать: потенциально управляется тем, что pub/sub

Сообщение Anonymous »

*** Редактировать: похоже, проблема может быть связана с облачным планировщиком Pub/Sub... Есть идеи, как предотвратить повторную отправку сообщения через 10 минут? Я не могу найти настройку в параметрах планировщика ***
*** Редактировать 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
Maestro
Поигрался с номерами экземпляров, но вернулся к значениям по умолчанию.

Добавил 3600 для запуска моей функции
Добавлен возврат 1 для всех определений

Подробнее здесь: https://stackoverflow.com/questions/788 ... otentially
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»