Как создать планировщик в httpTrigger в функции azure, используя python? - PullRequest
0 голосов
/ 03 августа 2020

у меня есть один httpTrigger где я реализовал кеш, у нас есть требование, где мы должны обновить кеш через 2 часа.

Решение 1: мы можем истечь кеш через 2 часа .. но мы не Не хочу использовать это решение

Решение 2: мы хотим, чтобы функция запускалась (update_cache()) через каждые 2 часа.

Я обнаружил библиотеку Но я Я не могу понять, как я могу это реализовать ..

# i want to trigger this function every 2 hour
def trigger_scheduler_update():
    logging.info("Hi i am scheduler and got triggered...")
schedule.every(2).hours.do(trigger_scheduler_update)

Но проблема, с которой я столкнулся, заключается в том, что мы должны написать такой код.

# ref: https://www.geeksforgeeks.org/python-schedule-library/
while True: 
  
    # Checks whether a scheduled task  
    # is pending to run or not 
    schedule.run_pending() 
    time.sleep(1) 

Как его бесконечный l oop я могу разместить его в триггере http, есть ли способ реализовать планировщик, который запускается через 2 часа.

Я не знаю, можно ли это сделать с помощью потоковой передачи? Я нашел еще одну библиотеку , но похоже, что она тоже не работает.

1 Ответ

0 голосов
/ 03 августа 2020

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

О каком кэше вы имеете в виду?

Обратите внимание, что вы не можете выполнять многопоточность в azure функциях и не должны этого делать. Откажитесь от идеи обновления кеша из вашей функции httpTrigger и создайте отдельную функцию scheduleTriggered для обновления кеша, который использует ваша функция http.

...