Мне нужно обновить данные с внешнего ресурса и делать это как можно чаще.
Я создал Azure Функция с 1-минутным таймером и помечен как Singleton
:
[Singleton]
[FunctionName("FunctionSync")]
public static void Run([TimerTrigger("0 */1 * * * *")]TimerInfo myTimer, ILogger log)
{
log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
}
но, мне кажется, создается очередь с ожидающими экземплярами, так что это нехорошо.
Другой способ - добавить очередь одним сообщением, например семафором, и получить сообщение в начале, добавить сообщение в конце. функции:
[Singleton]
[FunctionName("FunctionSync")]
public async Task Run(
[QueueTrigger("tablet-management-sync-last-datetime", Connection = "StorageConnectionString")]string myQueueItem,
[Queue("tablet-management-sync-last-datetime", Connection = "StorageConnectionString")]CloudQueue outputQueue,
ILogger log
)
{
но это решение fr agile, если что-то не так, сообщение не добавляется в очередь и процесс останавливается.
Какое решение является лучшим?